it-swarm.com.ru

Исполняемый файл драйвера должен быть установлен системным свойством webdriver.ie.driver.

Я использую 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/ 12 июня 2012 г. 4:18:42 PM org.Apache.http.impl. client.DefaultRequestDirector tryExecute INFO: Исключительная ситуация ввода-вывода (Java.net.SocketException) при обработке запроса: программное обеспечение вызвало прерывание соединения: сбой recv 12 июня 2012 г. 4:18:42 PM org.Apache.http .impl.client.DefaultRequestDirector tryExecute

Может ли кто-нибудь помочь мне в этом?

57
vkrams
  1. Вам понадобится исполняемый файл драйвера InternetExplorer в вашей системе. Поэтому скачайте его из подсказки ( http://www.seleniumhq.org/download/ ) распакуйте его и разместите где-нибудь, где вы сможете его найти. В моем примере я предполагаю, что вы поместите его в C:\Selenium\iexploredriver.exe

  2. Затем вы должны настроить его в системе. Вот код Java, вставленный из моего проекта Selenium:

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

По сути, вы должны установить это свойство до инициализации драйвера

73
Pavel Janicek

Сообщение об ошибке говорит

"Путь к исполняемому файлу драйвера должен быть установлен системным свойством webdriver.ie.driver;"

Вы устанавливаете путь для драйвера Chrome с помощью свойства "webdriver.chrome.driver". Вы не устанавливаете местоположение файла, когда для InternetExplorerDriver, для этого вы должны установить свойство "webdriver.ie.driver".

Вы можете установить эти свойства в вашей командной консоли, через maven или IDE с -DpropertyName = Value

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

Вам нужно использовать кавычки из-за пробелов или косых черт в вашем пути на компьютерах с Windows, или, наоборот, переставлять косые черты, иначе они являются префиксом escape-строки.

Вы также можете использовать

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

внутри вашего кода.

13
Martin Spamer

Я просто помещаю файлы драйверов прямо в мой проект, чтобы не получить никакой зависимости от моей локальной машины.

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

driver = new ChromeDriver();
2
feed.me

На весну:

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

Вам нужно будет загрузить исполняемый файл драйвера 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();
0
Ankit jain