Javascript 在NodeJs上运行Selenium
这是我第一次尝试在Javascript 在NodeJs上运行Selenium,javascript,node.js,selenium,selenium-webdriver,Javascript,Node.js,Selenium,Selenium Webdriver,这是我第一次尝试在windows7环境中的NodeJs上使用seleniumwebdriver。以下是我为使其发挥作用所做的努力: 已安装的NodeJs 7.5(由Selenium正式支持,如Git上所述) 使用npm 下载chromedriver.exe 2.27至“C:\Selenium Utilities\chromedriver” 将chromedriver添加到我的PATHasC:\Selenium Utilities\chromedriver 从Selenium Git页面添加了我的
windows7
环境中的NodeJs
上使用seleniumwebdriver
。以下是我为使其发挥作用所做的努力:
NodeJs 7.5
(由Selenium正式支持,如Git上所述)npm
chromedriver.exe 2.27
至“C:\Selenium Utilities\chromedriver”
chromedriver
添加到我的PATH
asC:\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();
节点test.js运行测试
我做错了什么?我需要运行一个单独的Selenium服务器才能运行这个吗?我觉得你的代码很好,所以我运行它来检查。我可以确认(在macOS Sierra上) 看起来您可能需要延长页面标题的等待时间,但有时我发现加载Google的页面标题需要超过一秒钟的时间
另一种选择是尝试托管服务,而不是设置您自己的selenium服务器。有多种可用的,我正是为了这个目的而做的。不需要任何设置-您可以立即开始编写测试。通过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();
});
chrome驱动程序版本和安装的chrome必须兼容。您解决了吗?如果从未使用过,为什么要使用'var chrome=require('selenium-webdriver/chrome')?