我npm安装了selenium-webdriver。下载IE component并将其放入我的路径中(使用Windows 8)。
打开IE并将所有安全区域设置为高,它们需要相同,但是因为"受限制的站点"不允许我把它设置为任何但很高我必须将所有其他设置改为高。
然后运行\ node_modules \ selenium-webdriver \ example \ google_search.js的修改版本:
var webdriver = require('..'),
By = webdriver.By,
until = webdriver.until;
var driver = new webdriver.Builder()
.forBrowser('ie')
.build();
driver.get('https://www.google.com/?gws_rd=ssl');//no redirect
driver.findElement(By.name('q')).sendKeys('webdriver');
driver.findElement(By.name('btnG')).click();
driver.wait(until.titleIs('webdriver - Google Search'), 1000);
driver.quit();
IE启动并打开谷歌,然后我收到以下错误:
NoSuchElementError:无法找到带有css选择器==的元素 * [名称=" Q"]
我非常确定该元素在页面上,因为"查看源代码"给了我
<input class="lst lst-tbb sbibps" id="lst-ib" maxlength="2048" name="q"
这实际上可能是IE的问题,因为在google.com上{11}在IE 11中返回未定义,但这意味着无法在IE中使用selenium。
[UPDATE]
将安全级别更改回默认设置时,查询选择器可以正常工作,但是selenium会崩溃:
WebDriverError:启动Internet Explorer时出现意外错误。 所有区域的保护模式设置都不相同。启用 保护模式必须设置为s值(启用或禁用) 适用于所有区域。
答案 0 :(得分:1)
有些人与IE有类似的问题,而且一个问题是由于测试网址被添加为通过代理设置的例外。
1.在Internet Explorer中,转到 2.Tools-&gt; Internet选项 - &gt; Connections-&gt; LAN设置 3.在代理服务器中,单击“高级”按钮 4.在例外情况下,检查是否包含必须绕过代理服务器的测试URL。如果是这样,请删除它并执行测试用例。这解决了我的问题。我在IE 7和IE 8中进行了测试,它对我有用。'
我相信这可以帮到你吗? https://github.com/seleniumhq/selenium-google-code-issue-archive/issues/3032 - 此链接提供了许多解决方案,如果您有任何工作,请与我们联系。
<强> [UPDATE] 强> 您需要为互联网选项=&gt;下的每个区域设置标题为“启用保护模式”的复选框。安全。不是安全级别滑块。
您可能遇到的另一个问题是打字是very solow。使用32bit driver可以解决这个问题。