Selenium Internet Explorer驱动程序无法找到元素(没有明确的等待解决方案)?

时间:2017-05-10 05:53:50

标签: selenium internet-explorer

尝试在Google上输入文字并点击按钮,在此行中获得“无法找到元素”的异常:driverIE.FindElement(By.Id(“lst-ib”))。SendKeys(“Selenium”),虽然我知道元素存在于DOM页面上。

最小,完整且可验证的代码

Imports OpenQA.Selenium
Imports OpenQA.Selenium.IE

Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim driverIE As New InternetExplorerDriver()
        driverIE.Navigate.GoToUrl("http://google.com")
        driverIE.FindElement(By.Id("lst-ib")).SendKeys("Selenium")
        driverIE.FindElement(By.Id("lst-ib")).SendKeys(Keys.Enter)
    End Sub
End Class

在发布到SO之前我已经尝试过的事情

  

IEDriverServer exectuable必须下载并放入您的   路径。

     

在Windows Vista或Windows 7上的IE 7或更高版本中,您必须设置   每个区域的保护模式设置为相同的值。该   值可以打开或关闭,只要它对于每个区域都相同。至   设置保护模式设置,从中选择“Internet选项...”   “工具”菜单,然后单击“安全”选项卡。对于每个区域,都会有   是标签为“启用保护”选项卡底部的复选框   模式”。

     

此外,必须禁用IE 10和“增强保护模式”   更高。此选项位于Internet的“高级”选项卡中   选项对话框。浏览器缩放级别必须设置为100%,以便   可以将本机鼠标事件设置为正确的坐标。

     

仅对于IE 11,您需要在目标上设置注册表项   计算机使驱动程序可以保持与实例的连接   它创建的Internet Explorer。对于32位Windows安装,   您必须在注册表编辑器中检查密钥   HKEY_LOCAL_MACHINE \ SOFTWARE \微软\互联网   资源管理器\ MAIN \ FeatureControl \ FEATURE_BFCACHE。对于64位Windows   装置,关键是   HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \微软\互联网   资源管理器\ MAIN \ FeatureControl \ FEATURE_BFCACHE。请注意   FEATURE_BFCACHE子键可能存在也可能不存在,应该是   如果它不存在则创建。重要提示:在此密钥内,创建一个   DWORD值名为iexplore.exe,值为0.

脚注:这不是这个问题的重复:Selenium Unable to Find Element原因是,我不想使用显式的Wait()。谢谢!

0 个答案:

没有答案