这是我在NodeJs
环境中Windows 7
NodeJs 7.5
的第一次尝试。以下是我为使其发挥作用所做的工作:
selenium-webdriver
(由Selenium正式支持,如其Git https://github.com/SeleniumHQ/selenium/tree/master/javascript/node/selenium-webdriver所述)npm
chromedriver.exe 2.27
"C:\Selenium Utilities\chromedriver"
下载到chromedriver
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();
从Selenium Git页面添加了我的第一个测试:
node test.js
通过{{1}}
结果,我得到错误说(摘录):
“...抛出新错误('不知道如何构建驱动程序:'+浏览器”
“错误:不知道如何构建驱动程序:C;你忘了打电话了 usingServer(URL)?“
我做错了什么?我是否需要运行单独的Selenium服务器才能运行它?
答案 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:
的顶部添加chromevar 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必须兼容。