58

我正在使用 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 PM org.apache.http.impl.client.DefaultRequestDirector tryExecute INFO: I/O exception (java. net.SocketException)在处理请求时捕获:软件导致连接中止:recv failed Jun 12, 2012 4:18:42 PM org.apache.http.impl.client.DefaultRequestDirector tryExecute

有人可以帮我吗?

4

5 回答 5

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

基本上,您必须在初始化驱动程序之前设置此属性

于 2012-06-12T12:08:44.060 回答
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"); 

在你的代码里面。

于 2012-06-12T12:06:44.920 回答
2

我只是将驱动程序文件直接放入我的项目中,以免对我的本地机器产生任何依赖。

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

driver = new ChromeDriver();
于 2016-07-25T08:19:50.427 回答
1

For spring :

File inputFile = new ClassPathResource("\\chrome\\chromedriver.exe").getFile();
System.setProperty("webdriver.chrome.driver",inputFile.getCanonicalPath());
于 2014-04-02T08:50:30.050 回答
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();
于 2014-01-07T18:25:32.813 回答