Невозможно найти элемент в закрытом окне в 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 необходимо установить одинаковые значения параметров защищенного режима для каждой зоны. Значение может быть включено или выключено, если оно одинаково для каждой зоны. Чтобы установить параметры защищенного режима, выберите "Свойства обозревателя..." в меню "Сервис" и щелкните вкладку "Безопасность". Для каждой зоны в нижней части вкладки будет установлен флажок "Включить защищенный режим".

Вы можете найти больше документации об этих фактах по этой ссылке.

Дайте мне знать, если это отвечает на ваш вопрос.

Другие вопросы по тегам