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

驱动程序可执行文件必须由 web 驱动程序系统属性设置

端木渝
2023-03-14

我正在使用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信息:处理请求时捕获I/O异常(java.net.SocketException):软件导致连接中止:recv失败2012年6月12日下午4:18:42 org.apache.http.impl.client。DefaultRequestDirector tryExecute

有人能帮我吗?

共有3个答案

曾景龙
2023-03-14

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

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

driver = new ChromeDriver();
平学
2023-03-14

错误信息显示

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

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

您可以通过maven在您的shell中设置这些属性,或者在您的IDE中使用-DProperties tyName=Value设置这些属性

-Dwebdriver.ie.driver="C:/.../IEDriverServer.exe" 

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

你也可以使用

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

在你的代码里。

微生高谊
2023-03-14

>

  • 您需要在系统上执行InternetExplorer驱动程序。所以,从暗示的来源下载它(http://www.seleniumhq.org/download/)打开包装,放在你能找到的地方。在我的示例中,我假设您将其放置到<code>C:\Selenium\iexploredriver.exe

    然后你得在系统里设置好。下面是从我的Selenium项目中粘贴的Java代码:

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

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

  •  类似资料: