Web驱动程序的示例不起作用

时间:2016-04-12 09:35:44

标签: javascript node.js selenium selenium-webdriver

我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值(启用或禁用)   适用于所有区域。

1 个答案:

答案 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可以解决这个问题。