简体   繁体   English

在 NodeJs 上运行 Selenium

[英]Running Selenium on NodeJs

This is my first attempt with selenium-webdriver on NodeJs in Windows 7 environment.这是我在Windows 7环境中在NodeJs上使用selenium-webdriver第一次尝试。 Here is what I have done to try to make it work:这是我为使其工作所做的工作:

  1. Installed NodeJs 7.5 (officially supported by Selenium as noted on their Git https://github.com/SeleniumHQ/selenium/tree/master/javascript/node/selenium-webdriver )已安装NodeJs 7.5 (Selenium 官方支持,如其 Git https://github.com/SeleniumHQ/selenium/tree/master/javascript/node/selenium-webdriver 所述
  2. Installed selenium-webdriver using npm使用npm安装selenium-webdriver
  3. Downloaded chromedriver.exe 2.27 to "C:\\Selenium Utilities\\chromedriver"chromedriver.exe 2.27下载到"C:\\Selenium Utilities\\chromedriver"
  4. Added chromedriver to my PATH as C:\\Selenium Utilities\\chromedriver;chromedriver添加到我的PATH作为C:\\Selenium Utilities\\chromedriver;
  5. Added my first test from Selenium Git page:从 Selenium Git 页面添加了我的第一个测试:

     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. Tried running test via node test.js尝试通过node test.js运行测试

As a result, I get error saying (excerpts):结果,我收到错误消息(摘录):

"...throw new Error('Do not know how to build driver: ' + browser" “...抛出新错误('不知道如何构建驱动程序:'+浏览器”

"Error: Do not know how to build driver: C; did you forget to call usingServer(url)?" “错误:不知道如何构建驱动程序:C;您是否忘记调用 usingServer(url)?”

What am I doing wrong?我究竟做错了什么? Do I need to run a separate Selenium server in order to run this?我是否需要运行单独的 Selenium 服务器才能运行它?

Your code looked fine to me, so I ran it to check that.你的代码对我来说很好,所以我运行它来检查。 I can confirm it runs fine (on macOS Sierra).我可以确认它运行良好(在 macOS Sierra 上)。 Here's a link to the repo I created . 这是我创建的 repo 的链接

It looks like you might need to extend the wait for the page title though, sometimes I found loading Google's page title took longer than a second.看起来您可能需要延长等待页面标题的时间,有时我发现加载 Google 的页面标题需要超过一秒钟的时间。

Another option would be to try a hosted service, rather than setting up your own selenium server.另一种选择是尝试托管服务,而不是设置您自己的 selenium 服务器。 There are a variety available, I've just made Obehave for exactly this purpose.有很多可用的,我只是为了这个目的而制作了Obehave There is zero setup required - you can start writing your tests straight away.需要零设置 - 您可以立即开始编写测试。

Install the chromedriver via npm.通过 npm 安装 chromedriver。

npm install chromedriver --save-dev

Then add chrome on top of the js:然后在js之上添加chrome:

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

Finally script:最后脚本:

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();
});

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM