official library for chrome java internet-explorer selenium-webdriver

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);