Невозможно найти элемент в закрытом окне в Python, используя Selenium
def check_text(browser, sitename):
browser.get(sitename)
try:
text = browser.find_element_by_class_name("text_content").text
if "foo" in text:
print("ok")
else:
print("not ok")
except NoSuchElementException:
print("no such elem")
def check_internet_explorer():
sitename="*foo site*"
caps = DesiredCapabilities.INTERNETEXPLORER
caps['ignoreProtectedModeSettings'] = True
ie = webdriver.Ie(capabilities=caps)
check_text(ie, sitename)
Этот код прекрасно работает в Windows 10. Когда я пытаюсь запустить его в Windows 7, веб-страница загружается, но я получаю эту ошибку: "Не удается найти элемент в закрытом окне". Я искал эту ошибку в Интернете, и это связано с защитой Internet Explorer. Режим. Я попытался добавить возможность "игнорировать настройки режима защиты", но получаю ту же ошибку. Что я могу сделать?
1 ответ
Вот ответ на ваш вопрос:
Когда вы работаете с Selenium 3.4.0
, IEDriverServer 3.4.0
с IE(v 10/11)
ошибка: "Невозможно найти элемент в закрытом окне" может произойти из-за нескольких ограничений Internet Explorer
и IEDriverServer.exe
, Чтобы предотвратить эти ошибки, мы можем явно установить nativeEvents
а также requireWindowFocus
в true
сквозь DesiredCapabilities
Класс следующим образом:
caps = DesiredCapabilities.INTERNETEXPLORER
caps['ignoreProtectedModeSettings'] = True
caps['nativeEvents'] = True
caps['ignoreZoomSetting'] = True
caps['requireWindowFocus'] = True
caps['InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS'] = True
ie = webdriver.Ie(capabilities=caps)
Как вы сталкиваетесь с проблемой на
Windows 7
В документации упоминаются следующие моменты: В IE 7 или более поздней версии в Windows Vista или Windows 7 необходимо установить одинаковые значения параметров защищенного режима для каждой зоны. Значение может быть включено или выключено, если оно одинаково для каждой зоны. Чтобы установить параметры защищенного режима, выберите "Свойства обозревателя..." в меню "Сервис" и щелкните вкладку "Безопасность". Для каждой зоны в нижней части вкладки будет установлен флажок "Включить защищенный режим".
Вы можете найти больше документации об этих фактах по этой ссылке.
Дайте мне знать, если это отвечает на ваш вопрос.