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保护模式的。我尝试添加"忽略保护模式设置"能力,但我得到同样的错误。我该怎么办?
答案 0 :(得分:1)
以下是您的问题的答案:
使用 Selenium 3.4.0
, IEDriverServer 3.4.0
IE(v 10/11)
时出现以下错误:"由于 Internet Explorer
和 IEDriverServer.exe
的一些限制,无法在关闭的窗口中找到元素" STRONG>。为防止出现这些错误,我们可以通过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
上遇到问题时,文档会提到以下几点:在Windows Vista或Windows 7上的IE 7或更高版本中,您必须设置保护模式< / strong>每个区域的设置是相同的值。只要每个区域的值相同,该值就可以打开或关闭。要设置受保护模式设置,请选择&#34; Internet选项...&#34;从“工具”菜单中,单击“安全”选项卡。对于每个区域,选项卡底部会显示一个标记为&#34;启用保护模式&#34; 的复选框。
您可以在此link中找到有关这些事实的更多文档。
如果这回答你的问题,请告诉我。