必须通过webdriver.ie.driver系统属性设置驱动程序可执行文件

时间:2012-06-12 10:59:53

标签: java internet-explorer selenium-webdriver webdriver system-properties

我正在使用Selenium来自动化测试。我的应用程序专门使用IE,它不适用于其他浏览器。

代码:

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

这是我得到的错误

驱动程序可执行文件的路径必须由webdriver.ie.driver系统属性设置;有关更多信息,请参阅https://github.com/SeleniumHQ/selenium/wiki/InternetExplorerDriver。最新版本可从http://www.seleniumhq.org/download/下载 2012年6月12日下午4:18:42 org.apache.http.impl.client.DefaultRequestDirector tryExecute INFO:处理请求时捕获的I / O异常(java.net.SocketException):软件导致连接中止:recv失败 2012年6月12日下午4:18:42 org.apache.http.impl.client.DefaultRequestDirector tryExecute

有人可以帮我吗?

5 个答案:

答案 0 :(得分:73)

  1. 您的系统上需要InternetExplorer驱动程序可执行文件。因此,从暗示源(http://www.seleniumhq.org/download/)下载它,将其解压缩并放置在您可以找到的地方。在我的示例中,我假设您将其放置到C:\Selenium\iexploredriver.exe

  2. 然后你必须在系统中进行设置。这是我的Selenium项目粘贴的Java代码:

    File file = new File("C:/Selenium/iexploredriver.exe");
    System.setProperty("webdriver.ie.driver", file.getAbsolutePath());
    WebDriver driver = new InternetExplorerDriver();
    
  3. 基本上,您必须在>初始化驱动程序

    之前设置此属性

答案 1 :(得分:13)

错误消息显示

  

“驱动程序可执行文件的路径必须由    webdriver.ie.driver 系统属性;“

您正在使用“ webdriver.chrome.driver ”属性设置Chrome驱动程序的路径。对于InternetExplorerDriver,您没有设置文件位置,为此,您必须设置“ webdriver.ie.driver ”属性。

您可以在shell中通过maven或IDE使用-DpropertyName = Value

设置这些属性
-Dwebdriver.ie.driver="C:/.../IEDriverServer.exe" 

您需要使用引号,因为Windows机器上的路径中有空格或斜线,或者反转斜线,否则它们是字符串字符串转义前缀。

您也可以使用

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

在你的代码中。

答案 2 :(得分:2)

我只是将驱动程序文件直接放入我的项目中,以便不依赖于本地计算机。

final File file = new File("driver/chromedriver_2_22_mac");
System.setProperty("webdriver.chrome.driver", file.getAbsolutePath());

driver = new ChromeDriver();

答案 3 :(得分:1)

春天:

File inputFile = new ClassPathResource("\\chrome\\chromedriver.exe").getFile();
System.setProperty("webdriver.chrome.driver",inputFile.getCanonicalPath());

答案 4 :(得分:0)

您需要在系统上下载InternetExplorer驱动程序可执行文件,下载后将其从源代码(http://code.google.com/p/selenium/downloads/list)下载并解压缩并放在计算机中的某个位置。在我的示例中,我将它放到D:\ iexploredriver.exe

然后你在eclipse主类中编写了下面的代码

   System.setProperty("webdriver.ie.driver", "D:/iexploredriver.exe");
   WebDriver driver = new InternetExplorerDriver();