在NodeJ上运行Selenium

时间:2017-02-26 19:33:35

标签: javascript node.js selenium selenium-webdriver

这是我在NodeJs环境中Windows 7 NodeJs 7.5的第一次尝试。以下是我为使其发挥作用所做的工作:

  1. 已安装selenium-webdriver(由Selenium正式支持,如其Git https://github.com/SeleniumHQ/selenium/tree/master/javascript/node/selenium-webdriver所述)
  2. 使用npm
  3. 安装chromedriver.exe 2.27
  4. "C:\Selenium Utilities\chromedriver"下载到chromedriver
  5. PATH添加到我的C:\Selenium Utilities\chromedriver; var webdriver = require('selenium-webdriver'), By = webdriver.By, until = webdriver.until; var driver = new webdriver.Builder() .forBrowser('chrome') .build(); driver.get('http://www.google.com/ncr'); driver.findElement(By.name('q')).sendKeys('webdriver'); driver.findElement(By.name('btnG')).click(); driver.wait(until.titleIs('webdriver - Google Search'), 1000); driver.quit();
  6. 从Selenium Git页面添加了我的第一个测试:

    node test.js
  7. 通过{{1}}

  8. 尝试运行测试

    结果,我得到错误说(摘录):

      

    “...抛出新错误('不知道如何构建驱动程序:'+浏览器”

         

    “错误:不知道如何构建驱动程序:C;你忘了打电话了   usingServer(URL)?“

    我做错了什么?我是否需要运行单独的Selenium服务器才能运行它?

3 个答案:

答案 0 :(得分:2)

你的代码看起来很好,所以我运行它来检查。我可以确认runs fine(在macOS Sierra上)。 Here's a link to the repo I created

看起来您可能需要延长页面标题的等待时间,有时我发现加载Google的页面标题的时间超过了一秒钟。

另一个选择是尝试托管服务,而不是设置自己的selenium服务器。有各种各样的,我刚刚为此目的制作了Obehave。无需设置 - 您可以立即开始编写测试。

答案 1 :(得分:0)

通过npm安装chromedriver。

npm install chromedriver --save-dev

然后在js:

的顶部添加chrome
var chrome = require('selenium-webdriver/chrome');

最后脚本:

var webdriver = require('selenium-webdriver'),
        By = webdriver.By, until = webdriver.until;
        var webdriver = require('selenium-webdriver');

var chrome = require('selenium-webdriver/chrome');

var driver = new webdriver.Builder()
    .forBrowser('chrome')
    .build();

driver.get('http://www.google.com/ncr').then(function(){
    driver.findElement(By.name('q')).sendKeys('webdriver');
    driver.findElement(By.name('btnK')).click();
    driver.quit();
});

答案 2 :(得分:0)

chrome驱动程序版本和已安装的chrome必须兼容。