Reputation: 11755
I recently started up coding with Selenium and Java. I have a basic test set up and things seem to be working with Firefox. I would like test on Chrome as well. But when I define the Webdriver as ChromeDriver, I get an error saying I need to define it on the system path.
I used Maven to download all the dependencies, but now I don't know how to reference them properly.
My issue:
protected void setUpBeforeTestClass(){
// define path to ChromeDriver
// cause I get the error "The path to the driver executable must be set by the webdriver.chrome.driver system property"
System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver");
// driver = new FirefoxDriver();
driver = new ChromeDriver();
String url = urls[0]; // pull in from array of urls
driver.get(url);
}
Maven downloads dependencies to:
C:\Users\{username}\.m2\repository\org\seleniumhq\selenium\ ...
And ChromeDriver is in that folder.
How can I reference this folder to pull in ChromeDriver without hard-coding the path? (I'm not looking to modify my system environment variables)
My goal is that I can just download my Java classes and Maven dependencies on any machine and run the tests.
Upvotes: 0
Views: 4777
Reputation: 11755
As per answers, I found that it is the binary that I was missing. Damn.
I found this:
https://github.com/bonigarcia/webdrivermanager
This helps out a lot in terms of managing the webdrivers I want to use. I don't have to download the webdrivers myself, this does it for me.
Upvotes: 2
Reputation: 17553
Download the binary from here:-
http://chromedriver.storage.googleapis.com/index.html?path=2.19/
Use below code:-
WebDriver driver=null;
System.setProperty("webdriver.chrome.driver","./src//lib//chromedriver");
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
ChromeOptions options = new ChromeOptions();
options.addArguments("test-type");
capabilities.setCapability("chrome.binary","./src//lib//chromedriver");
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
driver = new ChromeDriver(capabilities);
Hope it help :)
Get back to me if still facing issue :)
Upvotes: 0
Reputation: 1370
You need to download the Chrome Driver Binary and put it somewhere on your computer. Somewhere like "C:/Selenium/chromedriver.exe". You can find it here. You can then access it by using something like:
System.setProperty("webdriver.chrome.driver", "C:/Selenium/chromedriver.exe"));
Upvotes: 5