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

使用Selenium在Python中的关闭窗口中找不到元素,python,selenium,internet-explorer,protected-mode,Python,Selenium,Internet Explorer,Protected Mode,这段代码在Windows10上运行良好。当我尝试在windows 7上运行它时,网页会加载,但我遇到以下错误:“无法在关闭的窗口中找到元素” 我在网上查找此错误,它与internet explorer保护模式有关。我尝试添加“忽略保护模式设置”功能,但得到了相同的错误。我能做什么?以下是您问题的答案: 当您使用Selenium 3.4.0时,IEDriversServer 3.4.0使用IE(v 10/11)错误:无法在关闭的窗口中找到元素由于Internet Explorer和IEDriver

这段代码在Windows10上运行良好。当我尝试在windows 7上运行它时,网页会加载,但我遇到以下错误:“无法在关闭的窗口中找到元素”
我在网上查找此错误,它与internet explorer保护模式有关。我尝试添加“忽略保护模式设置”功能,但得到了相同的错误。我能做什么?

以下是您问题的答案:

当您使用Selenium 3.4.0时,
IEDriversServer 3.4.0
使用
IE(v 10/11)
错误:无法在关闭的窗口中找到元素由于Internet Explorer和IEDriverServer.exe的一些限制,可能会出现
问题。为了防止这些错误,我们可以通过
DesiredCapabilities
类将
nativeEvents
RequiredWinDowFocus
显式设置为
true
,如下所示:

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 7上遇到问题时,文档中提到了以下几点:在Windows Vista或Windows 7上的IE 7或更高版本上,您必须将每个区域的保护模式设置设置为相同的值。该值可以打开或关闭,只要每个分区的值相同。要设置保护模式设置,请从“工具”菜单中选择“Internet选项…”,然后单击“安全”选项卡。对于每个区域,选项卡底部将有一个复选框,标记为“启用保护模式”

您可以在本文中找到更多关于这些事实的文档


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

不幸的是,在我尝试您所说的内容后,出现了完全相同的错误。您的
缩放级别是否设置为100%?Selenium、IEDriverServer和IE版本。谢谢,缩放级别设置为100%。IE版本:11.0.9600.17843(IE 11)。Selenium版本:3.4.3。IE网络驱动程序版本:3.4.0。0@cosminp您是否有机会交叉检查我在回答中提供的链接中提到的设置?ThanksI尝试了这5种设置之间的所有可能的排列(包括最后一种,带有片状),结果仍然是一样的。
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)