This is my first attempt with selenium-webdriver
on NodeJs
in Windows 7
environment. Here is what I have done to try to make it work:
- Installed
NodeJs 7.5
(officially supported by Selenium as noted on their Git ) - Installed
selenium-webdriver
usingnpm
- Downloaded
chromedriver.exe 2.27
to"C:\Selenium Utilities\chromedriver"
- Added
chromedriver
to myPATH
asC:\Selenium Utilities\chromedriver;
Added my first test from Selenium Git page:
var webdriver = require('selenium-webdriver'), By = webdriver.By, until = webdriver.until; var driver = new webdriver.Builder() .forBrowser('chrome') .build(); driver.get(''); driver.findElement(By.name('q')).sendKeys('webdriver'); driver.findElement(By.name('btnG')).click(); driver.wait(until.titleIs('webdriver - Google Search'), 1000); driver.quit();
Tried running test via
node test.js
As a result, I get error saying (excerpts):
"...throw new Error('Do not know how to build driver: ' + browser"
"Error: Do not know how to build driver: C; did you forget to call usingServer(url)?"
What am I doing wrong? Do I need to run a separate Selenium server in order to run this?
This is my first attempt with selenium-webdriver
on NodeJs
in Windows 7
environment. Here is what I have done to try to make it work:
- Installed
NodeJs 7.5
(officially supported by Selenium as noted on their Git https://github./SeleniumHQ/selenium/tree/master/javascript/node/selenium-webdriver) - Installed
selenium-webdriver
usingnpm
- Downloaded
chromedriver.exe 2.27
to"C:\Selenium Utilities\chromedriver"
- Added
chromedriver
to myPATH
asC:\Selenium Utilities\chromedriver;
Added my first test from Selenium Git page:
var webdriver = require('selenium-webdriver'), By = webdriver.By, until = webdriver.until; var driver = new webdriver.Builder() .forBrowser('chrome') .build(); driver.get('http://www.google./ncr'); driver.findElement(By.name('q')).sendKeys('webdriver'); driver.findElement(By.name('btnG')).click(); driver.wait(until.titleIs('webdriver - Google Search'), 1000); driver.quit();
Tried running test via
node test.js
As a result, I get error saying (excerpts):
"...throw new Error('Do not know how to build driver: ' + browser"
"Error: Do not know how to build driver: C; did you forget to call usingServer(url)?"
What am I doing wrong? Do I need to run a separate Selenium server in order to run this?
Share Improve this question asked Feb 26, 2017 at 19:33 eYeeYe 1,7332 gold badges29 silver badges60 bronze badges 1- Did you solved it? – Pipe Commented Nov 17, 2017 at 12:47
4 Answers
Reset to default 2Your code looked fine to me, so I ran it to check that. I can confirm it runs fine (on macOS Sierra). Here's a link to the repo I created.
It looks like you might need to extend the wait for the page title though, sometimes I found loading Google's page title took longer than a second.
Another option would be to try a hosted service, rather than setting up your own selenium server. There are a variety available, I've just made Obehave for exactly this purpose. There is zero setup required - you can start writing your tests straight away.
Install the chromedriver via npm.
npm install chromedriver --save-dev
Then add chrome on top of the js:
var chrome = require('selenium-webdriver/chrome');
Finally script:
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./ncr').then(function(){
driver.findElement(By.name('q')).sendKeys('webdriver');
driver.findElement(By.name('btnK')).click();
driver.quit();
});
chrome driver version and installed chrome must be patible.
Remove "SELENIUM_BROWSER" variable from environment variables or add quotes its path.
"Error: Do not know how to build driver: C; did you forget to call usingServer(url)?"
C letter in the error is the first letter of C:\ in the path of the SELENIUM_BROWSER variable.