当前位置: 首页 > 知识库问答 >
问题:

如何在Selenium WebDriver中设置可执行IE驱动程序的路径

司寇嘉茂
2023-03-14

我试图在我的机器上运行以下代码(win XP

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

但是我得到的堆栈跟踪是

JAVAlang.IllegalStateException:驱动程序可执行文件的路径必须由webdriver设置。即驱动系统属性;在org。openqa。硒。遥远的服务司机服务。findExecutable(DriverService.java:105)位于org。openqa。硒。即InternetExplorerDriverse服务。在org上访问$1(InternetExplorerDriverService.java:1)。openqa。硒。ie.InternetExplorerDriversService$Builder。在org上构建(InternetExplorerDriverService.java:230)。openqa。硒。例如,InternetExplorerDriver。setupService(InternetExplorerDriver.java:263)位于org。openqa。硒。例如,InternetExplorerDriver。(InternetExplorerDriver.java:182)网址:org。openqa。硒。例如,InternetExplorerDriver。(InternetExplorerDriver.java:159)在博彩公司。设置(bookie.java:19)在sun。反映NativeMethodAccessorImpl。在sun上调用0(本机方法)。反映NativeMethodAccessorImpl。在sun上调用(未知源)。反映DelegatingMethodAccessorImpl。在java上调用(未知源代码)。朗,反思一下。方法在组织中调用(未知源)。朱尼特。跑步者。模型框架方法1美元。在org上运行ReflectVeCall(FrameworkMethod.java:47)。朱尼特。内部的跑步者。模型可反射的。在org上运行(reflectVeCallable.java:12)。朱尼特。跑步者。模型框架方法。在org上以爆炸方式调用(FrameworkMethod.java:44)。朱尼特。内部的跑步者。声明。RunBefores。在org上评估(RunBefores.java:24)。朱尼特。内部的跑步者。声明。Runafter。在org上评估(runafter.java:27)。朱尼特。跑步者。家长跑步者。runLeaf(ParentRunner.java:271)位于org。朱尼特。跑步者。BlockJunitClassRunner。org上的runChild(BlockJUnit4ClassRunner.java:70)。朱尼特。跑步者。BlockJunitClassRunner。org上的runChild(BlockJUnit4ClassRunner.java:50)。朱尼特。跑步者。ParentRunner 3美元。在org上运行(ParentRunner.java:238)。朱尼特。跑步者。ParentRunner 1美元。计划(ParentRunner.java:63)位于org。朱尼特。跑步者。家长跑步者。org上的runChildren(ParentRunner.java:236)。朱尼特。跑步者。家长跑步者。访问org上的$000(ParentRunner.java:53)。朱尼特。跑步者。ParentRunner 2美元。在org上评估(ParentRunner.java:229)。朱尼特。跑步者。家长跑步者。在org上运行(ParentRunner.java:309)。日食jdt。内部的junit4。跑步者JUnit4TestReference。在org上运行(JUnit4TestReference.java:38)。日食jdt。内部的朱尼特。跑步者测试执行。在org上运行(TestExecution.java:38)。日食jdt。内部的朱尼特。跑步者RemoteTestRunner。org上的runTests(RemoteTestRunner.java:460)。日食jdt。内部的朱尼特。跑步者RemoteTestRunner。在org上运行测试(RemoteTestRunner.java:673)。日食jdt。内部的朱尼特。跑步者RemoteTestRunner。在org上运行(RemoteTestRunner.java:386)。日食jdt。内部的朱尼特。跑步者RemoteTestRunner。main(RemoteTestRunner.java:196)

共有2个答案

滕项明
2023-03-14

与上述解决方案类似,但具有所需的功能

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);
袁琪
2023-03-14

将驱动程序放置在C:\Selenium\iexploredriver.exe

然后

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

下面一行应该是setUp()函数的第一行

System.setProperty("webdriver.ie.driver", "IEDriverServer.exe");   
 类似资料: