好吧,我想我已经完成了我的作业......我不能为我的生活让official Selenium Webdriver npm module工作;我被卡住了。这是我的所有版本......
Ubuntu 14.04
NodeJS v0.12.0,位于 Express 4.0
下面Java OpenJDK 1.6.0_34
Chrome稳定 33.0.1750.152
Chromedriver 2.9
我创建了一个Digital Ocean Droplet并选择了已安装Node的Ubuntu 14.04。我安装了Chrome,Git和Java,然后安装了PM2和Grunt。
我下载了Chromedriver 2.9,允许执行(chmod a+x
),并将其移至/ usr / local / bin。我可以在任何地方运行“chromedriver
”,它会显示消息Starting ChromeDriver (v2.9.248304) on port 9515
。此外,netstat -lp
确认Chromedriver正在侦听9515端口;它正在发挥作用。
我使用Selenium Standalone npm模块获取selenium-webdriver模块使用的Selenium jar。我跑了这些命令......
npm install selenium-standalone@latest -g
selenium-standalone install
它告诉我Selenium .jar已被下载到......
/usr/local/lib/node_modules/selenium-standalone/.selenium/selenium-server/2.44.0-server.jar
最重要的东西...... Selenium Webdriver模块。我根据npm文档在我的Node应用程序的根目录中运行了这些命令。
export SELENIUM_SERVER_JAR=/usr/local/lib/node_modules/selenium-standalone/.selenium/selenium-server/2.44.0-server.jar
SELENIUM_BROWSER=chrome
它基本上直接来自WebdriverJS documentation。
function init(value, cb) {
console.log('Started task...');
var webdriver = require('selenium-webdriver'),
driver = new webdriver.Builder().
withCapabilities(webdriver.Capabilities.chrome()).
build();
driver.get('http://www.google.com');
driver.findElement(webdriver.By.name('q')).sendKeys('webdriver');
driver.findElement(webdriver.By.name('btnG')).click();
driver.wait(function() {
return driver.getTitle().then(function(title) {
return title === 'webdriver - Google Search';
});
}, 1000);
driver.quit();
console.log('done');
cb();
}
init(true, function() {
// do other stuff
});
我读了here你应该用xvfb
安装它,然后运行这个命令......
Xvfb :0 -ac -screen 0 1024x768x24 &
但它并没有什么区别。
我尝试在他们的repo和OpenJDK 1.7中使用Oracle的Java。我还看到了许多可以通过执行java -jar -flagsandstuff
传递的命令行选项,但这似乎不是使用Selenium Webdriver模块的解决方案。我出于想法而感到沮丧。