- 操作系统: Windows 10
- 浏览器: IE11
- Selenium (Python) 包: 3.0.1
- IEWebDriverServer.exe: 3.1.0
我们正在准备将自动化节点迁移到Windows 10,并在测试过程中发现,尽管我们的脚本在Win7上在FF、IE和Chrome上运行正常,但它们仅在Windows 10上用于IE时失败(对于FF和Chrome正常工作)。
当针对IE运行时,浏览器实例化并且webdriver能够看到浏览器(我尝试了一个简单的命令,如driver.back(),它返回到之前的页面)。然而,我们无法使任何find_element...调用起作用。不管是通过id、name、css、xpath等方式寻找webelement。脚本将会失败,指出给定的id/name/css/xpath(无论我尝试使用哪种方法来查找webelement)没有找到任何元素。
我看到过关于破坏它的安全更新的帖子,建议还原更新。不过这是一年前的事情,似乎随后的更新已经解决了这个问题。
我也阅读了许多帖子,关于确保所有区域的受保护模式相同,一个注册表值等等。然而,这些建议都没有起作用。
这是我正在使用的示例脚本,修改后可以在Chrome或Firefox中运行,但仅在IE11中无法工作:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Ie()
driver.implicitly_wait(30)
driver.maximize_window()
# navigate to the application home page
driver.get("http://www.google.com")
# get the search textbox
search_field = driver.find_element_by_id("lst-ib")
运行此脚本时出现的错误是:
selenium.common.exceptions.NoSuchElementException: Message: Unable to find element with id == lst-ib