SoluableNonagon
SoluableNonagon

Reputation: 11755

Java - reference maven dependency - Selenium Chromedriver

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.

enter image description here

Upvotes: 0

Views: 4777

Answers (3)

SoluableNonagon
SoluableNonagon

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

Shubham Jain
Shubham Jain

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

Joey
Joey

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

Related Questions