java - library - Cómo establecer la ruta para los controladores de IE ejecutables en Selenium WebDriver
selenium official documentation (2)
Coloque el controlador en una ubicación como C: / Selenium / iexploredriver.exe
Entonces
File file = new File("C:/Selenium/iexploredriver.exe");
System.setProperty("webdriver.ie.driver", file.getAbsolutePath());
WebDriver driver = new InternetExplorerDriver();
Debajo de la línea debe estar la primera línea de la función setUp ()
System.setProperty("webdriver.ie.driver", "IEDriverServer.exe");
Estoy intentando ejecutar el siguiente código en mi máquina (gana XP e IE8)
public class bookie {
private WebDriver driver;
private String baseUrl;
private boolean acceptNextAlert = true;
private StringBuffer verificationErrors = new StringBuffer();
@Before
public void setUp() throws Exception {
DesiredCapabilities caps = DesiredCapabilities.internetExplorer();
caps.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,true);
driver = new InternetExplorerDriver(caps);
baseUrl = "http://book.theautomatedtester.co.uk/";
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
}
@Test
public void testbookie() throws Exception {
System.setProperty("webdriver.ie.driver", "IEDriverServer.exe");
driver.get(baseUrl + "/");
driver.findElement(By.linkText("Chapter1")).click();
driver.findElement(By.id("radiobutton")).click();
new Select(driver.findElement(By.id("selecttype"))).selectByVisibleText("Selenium Core");
driver.findElement(By.linkText("Home Page")).click();
driver.findElement(By.linkText("Chapter2")).click();
driver.findElement(By.id("but1")).click();
driver.findElement(By.xpath("//input[@value=''Sibling Button'']")).click();
driver.findElement(By.linkText("Index")).click();
driver.findElement(By.linkText("Chapter1")).click();
new Select(driver.findElement(By.id("selecttype"))).selectByVisibleText("Selenium Grid");
driver.findElement(By.linkText("Home Page")).click();
driver.quit();
}
Pero el seguimiento de la pila que me proporcionaron es
java.lang.IllegalStateException: la ruta del ejecutable del controlador debe establecerse mediante la propiedad del sistema webdriver.ie.driver; en org.openqa.selenium.remote.service.DriverService.findExecutable (DriverService.java:105) en org.openqa.selenium.ie.InternetExplorerDriverService.access $ 1 (InternetExplorerDriverService.java:1) en org.openqa.selenium.ie. InternetExplorerDriverService $ Builder.build (InternetExplorerDriverService.java:230) en org.openqa.selenium.ie.InternetExplorerDriver.setupService (InternetExplorerDriver.java:263) en org.openqa.selenium.ie.InternetExplorerDriver. (InternetExplorerDriver.java:182) en org.openqa.selenium.ie.InternetExplorerDriver. (InternetExplorerDriver.java:159) en bookie.setUp (bookie.java:19) en sun.reflect.NativeMethodAccessorImpl.invoke0 (método nativo) en sun.reflect.NativeMethodAccessorImpl.invoke (Desconocido Fuente) en sun.reflect.DelegatingMethodAccessorImpl.invoke (Fuente desconocida) en java.lang.reflect.Method.invoke (Fuente desconocida) en org.junit.runners.model.FrameworkMethod $ 1.runReflectiveCall (FrameworkMethod.java:47) en org .junit.internal.runners.model.ReflectiveCallable.run (ReflectiveCa) llable.java:12) en org.junit.runners.model.FrameworkMethod.invokeExplosively (FrameworkMethod.java:44) en org.junit.internal.runners.statements.RunBefores.evaluate (RunBefores.java:24) en org.junit .internal.runners.statements.RunAfters.evaluate (RunAfters.java:27) en org.junit.runners.ParentRunner.runLeaf (ParentRunner.java:271) en org.junit.runners.BlockJUnit4ClassRunner.runChild (BlockJUnit4ClassRunner.java:70 ) en org.junit.runners.BlockJUnit4ClassRunner.runChild (BlockJUnit4ClassRunner.java:50) en org.junit.runners.ParentRunner $ 3.run (ParentRunner.java:238) en org.junit.runners.ParentRunner $ 1.schedule (ParentRunner. java: 63) en org.junit.runners.ParentRunner.runChildren (ParentRunner.java:236) en org.junit.runners.ParentRunner.access $ 000 (ParentRunner.java:53) en org.junit.runners.ParentRunner $ 2.evaluar (ParentRunner.java:229) en org.junit.runners.ParentRunner.run (ParentRunner.java:309) en org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run (JUnit4TestReference.java:38) en org. eclips e.jdt.internal.junit.runner.TestExecution.run (TestExecution.java:38) en org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests (RemoteTestRunner.java:460) en org.eclipse.jdt. internal.junit.runner.RemoteTestRunner.runTests (RemoteTestRunner.java:673) en org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run (RemoteTestRunner.java:386) en org.eclipse.jdt.internal.junit. runner.RemoteTestRunner.main (RemoteTestRunner.java:196)
Similar a la solución anterior pero con las capacidades deseadas
System.setProperty("webdriver.ie.driver","C://IEDriverServer.exe");
DesiredCapabilities dc = DesiredCapabilities.internetExplorer();
dc.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true); //If IE fail to work, please remove this and remove enable protected mode for all the 4 zones from Internet options
WebDriver driver = new InternetExplorerDriver(dc);