无法使用Selenium在Python中的关闭窗口中找到元素

时间:2017-07-26 07:16:06

标签: python selenium internet-explorer protected-mode

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 个答案:

答案 0 :(得分:1)

以下是您的问题的答案:

使用 Selenium 3.4.0 IEDriverServer 3.4.0 IE(v 10/11) 时出现以下错误:"由于 Internet Explorer IEDriverServer.exe 的一些限制,无法在关闭的窗口中找到元素" STRONG>。为防止出现这些错误,我们可以通过nativeEvents类明确地将requireWindowFocustrue设置为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 上遇到问题时,文档会提到以下几点:在Windows Vista或Windows 7上的IE 7或更高版本中,您必须设置保护模式< / strong>每个区域的设置是相同的值。只要每个区域的值相同,该值就可以打开或关闭。要设置受保护模式设置,请选择&#34; Internet选项...&#34;从“工具”菜单中,单击“安全”选项卡。对于每个区域,选项卡底部会显示一个标记为&#34;启用保护模式&#34; 的复选框。

您可以在此link中找到有关这些事实的更多文档。

如果这回答你的问题,请告诉我。