Selenium WebdriverJS 甚至不会 运行 这个例子
Selenium WebdriverJS won't even run the example
好的,我想我已经完成了这里的功课...我这辈子都无法让 official Selenium Webdriver npm module 工作;我卡住了。这是我所有的版本...
Ubuntu 14.04
NodeJS v0.12.0, underneath Express 4.0
Java OpenJDK 1.6.0_34
Chrome Stable 33.0.1750.152
Chromedriver 2.9
我创建了一个 Digital Ocean droplet 并选择了 Ubuntu 14.04,并且已经安装了 Node。我 apt-get 安装了 Chrome、Git 和 Java,然后 npm install'd PM2 和 G运行t.
我下载了Chromedriver 2.9,授予它执行权限(chmod a+x
),并将它移动到/usr/local/bin。我可以在任何地方 运行 "chromedriver
",它会给出消息 Starting ChromeDriver (v2.9.248304) on port 9515
。此外,netstat -lp
确认 Chrome 驱动程序正在侦听端口 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 &
但这并没有什么不同。
我尝试使用来自其存储库的 Oracle Java 和 OpenJDK 1.7。我还看到了很多可以通过执行 java -jar -flagsandstuff
传递的命令行选项,但它似乎不是使用 Selenium Webdriver 模块的解决方案。我没有想法和沮丧。
不值得;在 PhantomJS 之上有更好的无头浏览器模块运行。我终于找到了这个 post 大约有 30 种不同的解决方案!我选择了 Nightmare.
Headless Browser and scraping - solutions [closed]
好的,我想我已经完成了这里的功课...我这辈子都无法让 official Selenium Webdriver npm module 工作;我卡住了。这是我所有的版本...
Ubuntu 14.04
NodeJS v0.12.0, underneath Express 4.0
Java OpenJDK 1.6.0_34
Chrome Stable 33.0.1750.152
Chromedriver 2.9
我创建了一个 Digital Ocean droplet 并选择了 Ubuntu 14.04,并且已经安装了 Node。我 apt-get 安装了 Chrome、Git 和 Java,然后 npm install'd PM2 和 G运行t.
我下载了Chromedriver 2.9,授予它执行权限(chmod a+x
),并将它移动到/usr/local/bin。我可以在任何地方 运行 "chromedriver
",它会给出消息 Starting ChromeDriver (v2.9.248304) on port 9515
。此外,netstat -lp
确认 Chrome 驱动程序正在侦听端口 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 &
但这并没有什么不同。
我尝试使用来自其存储库的 Oracle Java 和 OpenJDK 1.7。我还看到了很多可以通过执行 java -jar -flagsandstuff
传递的命令行选项,但它似乎不是使用 Selenium Webdriver 模块的解决方案。我没有想法和沮丧。
不值得;在 PhantomJS 之上有更好的无头浏览器模块运行。我终于找到了这个 post 大约有 30 种不同的解决方案!我选择了 Nightmare.
Headless Browser and scraping - solutions [closed]