-
Notifications
You must be signed in to change notification settings - Fork 2.3k
Cannot start webdriver as a process #1895
Comments
Can you share the code you're using? |
It's showing up as an issue with my protractor package grunt-simple-protractor, but I've written a simpler Gist that shows the error in question. The folder structure is: $ ls .
Gruntfile.js node_modules package.json proc.js tasks tspec.js
$ ls tasks/
foo.js It's a problem with firefox but not chrome. It might not clean up webdriver since it's a minimal example. If you need a quick way to kill webdriver: $ alias webdriver="ps ax | grep webdriver | awk '{print \$1}' | head -n 2 | tr '\n' ' '"
$ alias -p
alias webdriver='ps ax | grep webdriver | awk '\''{print $1}'\'' | head -n 2 | tr '\''\n'\'' '\'' '\'''
$ kill -9 `webdriver` |
var spawn = require('child_process').spawn
var webdriver
(function runWebdriver() {
webdriver = spawn('node', ['./node_modules/.bin/webdriver-manager', 'start'])
webdriver.stdout.pipe(process.stdout)
webdriver.stderr.pipe(process.stderr)
})()
function runProtractor() {
var ptor = spawn('node', ['./node_modules/.bin/protractor', '--seleniumAddress', 'http://localhost:4444/wd/hub', '--specs', 'tspec.js', '--browser', 'firefox'])
ptor.stdout.pipe(process.stdout)
ptor.stderr.pipe(process.stderr)
}
var webdriverStarted = false
webdriver.stderr.on('data', function(data) {
if (!webdriverStarted && (data && data.toString().match(/Started .*Server/))) {
webdriverStarted = true
runProtractor()
}
}) |
What version of firefox are you using? I think this might be a duplicate of #1872 |
I think it has something to do with either the webdriver update to 2.45 or protractor 1.8.0, but it's not a duplicate of that issue. It will work with 1.7.0 when I try to use firefox <35/36 (I tried it on 34), but it throws the above error when I use protractor 1.8.0. I've tried firefox 34 and 36. |
Not sure what to say. Your example script above is working fine for me. Is anyone else having this issue? |
What environment are you using? I'm running Arch Linux with Node 0.12.0 and OpenJDK 7. I can run the The stack trace is pretty cryptic when I run
|
I'm closing, since this doesn't seem to be a general issue. We can continue to discuss, however. I'm using Mac OSX. It looks like your driver version is not found? Are you sure your version of the selenium standalone is up to date? |
It's definitely updated to 2.45.0: $ ./node_modules/.bin/webdriver-manager update
Updating selenium standalone
downloading https://selenium-release.storage.googleapis.com/2.45/selenium-server-standalone-2.45.0.jar...
Updating chromedriver
downloading https://chromedriver.storage.googleapis.com/2.14/chromedriver_linux64.zip...
chromedriver_2.14.zip downloaded to /home/foo/git/javascript/tmp/node_modules/protractor/selenium/chromedriver_2.14.zip
selenium-server-standalone-2.45.0.jar downloaded to /home/foo/git/javascript/tmp/node_modules/protractor/selenium/selenium-server-standalone-2.45.0.jar And it can run webdriver or selenium standalone just fine if it's not a process. For example, if you change line 7 of webdriver = spawn('java', ['-jar', './node_modules/protractor/selenium/selenium-server-standalone-2.45.0.jar']) It still has the same issue with the same trace. I think this is a protractor issue, because I can run /* example.js */
var webdriver = require('selenium-webdriver');
var driver = new webdriver.Builder()
.withCapabilities(webdriver.Capabilities.firefox())
.build();
driver.get('http://www.google.com');
var element = driver.findElement(webdriver.By.name('q'));
element.sendKeys('Cheese!');
element.submit();
driver.getTitle().then(function(title) {
console.log('Page title is: ' + title);
});
driver.wait(function() {
return driver.getTitle().then(function(title) {
return title.toLowerCase().lastIndexOf('cheese!', 0) === 0;
});
}, 3000);
driver.getTitle().then(function(title) {
console.log('Page title is: ' + title);
});
driver.quit(); and /* proc2.js */
var spawn = require('child_process').spawn;
spawn('node', ['example.js']); node proc2.js Since selenium-webdriver requires python, I have to install it with the --python=python2.7 switch due to Arch Linux using python 3.4.3 by default. I thought it might be a python issue, but if I switch the symlink for /usr/bin/python to point to python2.7, it still fails. |
Just a heads up: |
Since 1.8.0, I can't start webdriver as a process when I run it with Firefox. It works if I don't run it as a process using
require('child_process').spawn
orgrunt.util.spawn
(a wrapper). I can confirm that theselenium-webdriver
library itself runs fine as a process.It gives me the following error:
The text was updated successfully, but these errors were encountered: