我正在使用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
有人可以帮我吗?
答案 0 :(得分:73)
您的系统上需要InternetExplorer驱动程序可执行文件。因此,从暗示源(http://www.seleniumhq.org/download/)下载它,将其解压缩并放置在您可以找到的地方。在我的示例中,我假设您将其放置到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();
基本上,您必须在>>初始化驱动程序
之前设置此属性答案 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();