Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Driver executable must be set by the webdriver.ie.driver system property

I am using Selenium for automating the tests. My application exclusively uses IE, it will not work on other Browsers.

Code:

import org.openqa.selenium.ie.InternetExplorerDriver; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement;  public class Test {     public static void main(String[] args) {         final String sUrl = "http://www.google.co.in/";                                      System.setProperty("webdriver.chrome.driver","C:\\Users\\vthaduri\\workspace\\LDCSuite\\IEDriverServer.exe");         WebDriver oWebDriver = new InternetExplorerDriver();         oWebDriver.get(sUrl);         WebElement oSearchInputElem = oWebDriver.findElement(By.name("q")); // Use name locator to identify the search input field.         oSearchInputElem.sendKeys("Selenium 2");         WebElement oGoogleSearchBtn = oWebDriver.findElement(By.xpath("//input[@name='btnG']"));           oGoogleSearchBtn.click();          try {             Thread.sleep(5000);         } catch(InterruptedException ex) {             System.out.println(ex.getMessage());         }         oWebDriver.close();     }     } 

And here is the error I am getting

The path to the driver executable must be set by the webdriver.ie.driver system property; for more information, see https://github.com/SeleniumHQ/selenium/wiki/InternetExplorerDriver. The latest version can be downloaded from http://www.seleniumhq.org/download/ Jun 12, 2012 4:18:42 PM org.apache.http.impl.client.DefaultRequestDirector tryExecute INFO: I/O exception (java.net.SocketException) caught when processing request: Software caused connection abort: recv failed Jun 12, 2012 4:18:42 PM org.apache.http.impl.client.DefaultRequestDirector tryExecute

Can someone help me on this?

like image 466
vkrams Avatar asked Jun 12 '12 10:06

vkrams


People also ask

How do I change the path to the driver executable?

getting java lang IllegalStateException The path to the driver executable must be set by the webdriver chrome driver system property. WebDriver driver = new ChromeDriver(); System. setProperty("webdriver.


2 Answers

  1. You will need InternetExplorer driver executable on your system. So download it from the hinted source (http://www.seleniumhq.org/download/) unpack it and place somewhere you can find it. In my example, I will assume you will place it to C:\Selenium\iexploredriver.exe

  2. Then you have to set it up in the system. Here is the Java code pasted from my Selenium project:

    File file = new File("C:/Selenium/iexploredriver.exe"); System.setProperty("webdriver.ie.driver", file.getAbsolutePath()); WebDriver driver = new InternetExplorerDriver(); 

Basically, you have to set this property before you initialize driver

like image 149
Pavel Janicek Avatar answered Sep 18 '22 19:09

Pavel Janicek


The error message says

"The path to the driver executable must be set by the webdriver.ie.driver system property;"

You are setting the path for the Chrome Driver with "webdriver.chrome.driver" property. You are not setting the file location when for InternetExplorerDriver, to do that you must set "webdriver.ie.driver" property.

You can set these properties in your shell, via maven, or your IDE with the -DpropertyName=Value

-Dwebdriver.ie.driver="C:/.../IEDriverServer.exe"  

You need to use quotes because of spaces or slashes in your path on windows machines, or alternatively reverse the slashes other wise they are the string string escape prefix.

You could also use

System.setProperty("webdriver.ie.driver","C:/.../IEDriverServer.exe");  

inside your code.

like image 33
Martin Spamer Avatar answered Sep 21 '22 19:09

Martin Spamer