Selenium WebdriverJS甚至不会运行这个例子

时间:2015-02-10 20:29:26

标签: javascript node.js selenium selenium-webdriver selenium-chromedriver

好吧,我想我已经完成了我的作业......我不能为我的生活让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
});

输出

Terminal

我尝试过的其他事情

我读了here你应该用xvfb安装它,然后运行这个命令......

Xvfb :0 -ac -screen 0 1024x768x24 &

但它并没有什么区别。

我尝试在他们的repo和OpenJDK 1.7中使用Oracle的Java。我还看到了许多可以通过执行java -jar -flagsandstuff传递的命令行选项,但这似乎不是使用Selenium Webdriver模块的解决方案。我出于想法而感到沮丧。

1 个答案:

答案 0 :(得分:0)

它不值得;有更好的无头浏览器模块在PhantomJS上运行。我终于发现这篇文章有大约30个不同的解决方案!我和Nightmare一起去了。

Headless Browser and scraping - solutions [closed]