Не подключаются драйверы:java.lang.IllegalStateException: The path to the driver executable must be set by the webdriver.chrome.driver system property

209
03 октября 2018, 02:50

Только начала осваивать автоматизацию тестирования, столкнулась с тем, что Intellij IDEA никак не может подключить geckodriver для Firefox и chromedriver для Chrome. Выдает ошибку "java.lang.IllegalStateException: The path to the driver executable must be set by the webdriver.chrome.driver system property; for more information, see https://github.com/SeleniumHQ/selenium/wiki/ChromeDriver. The latest version can be downloaded from http://chromedriver.storage.googleapis.com/index.html"

Использую:

IntelliJ IDEA 2018.1.6 (Community Edition)

Build #IC-181.5540.7, built on July 11, 2018

JRE: 1.8.0_152-release-1136-b39 amd64

JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o

Windows 7 6.1

TestNG 6.8.17

Selenium 3.13.0

Gradle 4.9

Firefox 50.0.2

Пыталась прописать через вот это, как это рекомендуют на всех форумах в таких случаях:

System.setProperty("webdriver.chrome.driver", "Путь к geckodriver.exe\chromedriver.exe");
    WebDriver wd = new ChromeDriver();

однако IDEA подсвечивает красным setProperty и пишет "Cannot resolve symbol "setProperty", ошибка остается прежней. То же самое с geckodriver.

Код записывала Selenium Builder в Firefox, импортировала для TestNG, изначально драйвер прописывался там так:

FirefoxDriver wd;

Весь код:

package FirstOne;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.Test;
import static org.testng.Assert.*;
import java.util.concurrent.TimeUnit;
import java.util.Date;
import java.io.File;
import org.openqa.selenium.support.ui.Select;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.*;
import static org.openqa.selenium.OutputType.*;

public class AmazonLogin {
    System.setProperty("webdriver.gecko/chrome.driver", "Путь к geckodriver.exe\chromedriver.exe");
    WebDriver wd = new ChromeDriver();

@BeforeMethod
public void setUp() throws Exception {
    wd = new ChromeDriver();
    wd.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
}
@Test
public void AmazonLogin() {
    wd.get("https://www.amazon.com/");
    wd.findElement(By.xpath("//div[@id='nav-signin-tooltip']//span[.='Sign in']")).click();
    wd.findElement(By.id("ap_email")).click();
    wd.findElement(By.id("ap_email")).sendKeys("\\undefined");
    wd.findElement(By.id("ap-credential-autofill-hint")).click();
    wd.findElement(By.id("ap-credential-autofill-hint")).sendKeys("\\undefined");
    wd.findElement(By.id("ap_email")).click();
    wd.findElement(By.id("ap_email")).clear();
    wd.findElement(By.id("ap_email")).sendKeys(" /** Mail/ ");
    wd.findElement(By.xpath("//input[@class='a-button-input']")).click();
    wd.findElement(By.id("ap_password")).click();
    wd.findElement(By.id("ap_password")).sendKeys("\\undefined");
    wd.findElement(By.xpath("//div[@id='authportal-main-section']/div[2]/div[1]/form/div/div/div/div[2]/div[1]/div[2]")).click();
    wd.findElement(By.id("ap_password")).click();
    wd.findElement(By.id("ap_password")).clear();
    wd.findElement(By.id("ap_password")).sendKeys(" /** Password/ ");
    wd.findElement(By.id("signInSubmit")).click();
}
@AfterMethod
public void tearDown() {
    wd.quit();
}
public static boolean isAlertPresent(ChromeDriver wd) {
    try {
        wd.switchTo().alert();
        return true;
    } catch (NoAlertPresentException e) {
        return false;
    }
}

}

Что я делаю не так? Уже даже в PATH добавила пути к драйверам.

Answer 1

Начнем с того что не IDEA, а Вы не правильно что-то сделали ибо ошибку выдает Ваш код.

Ну и сама инициализация драйвера не корректная.

У меня такое чудо работает:

ChromeOptions options = new ChromeOptions()
System.setProperty("webdriver.chrome.driver", "Путь к chromedrive.exe");
System.setProperty("webdriver.chrome.logfile", "/log.log");
System.setProperty("webdriver.chrome.verboseLogging", "true");
options.addArguments("start-maximized");
options.addArguments("--user-agent="+"юзер агент с браузера"); // Если не надо удалите
options.setCapability("chrome.verbose", true);
options.setCapability("networkConnectionEnabled", true);
options.setCapability("takesScreenshot", true);
options.setCapability("--user-agent", "юзер агент с браузера");
options.setCapability("browserName", "LinkedinPeopleParser");
options.setCapability("platform", org.openqa.selenium.Platform.WINDOWS);
options.setCapability(CapabilityType.SUPPORTS_JAVASCRIPT, true);
options.setCapability(CapabilityType.ELEMENT_SCROLL_BEHAVIOR, true);
options.setCapability(CapabilityType.SUPPORTS_FINDING_BY_CSS, true);
options.setCapability(CapabilityType.HAS_NATIVE_EVENTS, true);
LoggingPreferences logPrefs = new LoggingPreferences();
logPrefs.enable(LogType.PERFORMANCE, Level.INFO);
logPrefs.enable(LogType.PROFILER, Level.INFO);
logPrefs.enable(LogType.BROWSER, Level.INFO);
logPrefs.enable(LogType.CLIENT, Level.INFO);
logPrefs.enable(LogType.DRIVER, Level.INFO);
logPrefs.enable(LogType.SERVER, Level.INFO);
options.setCapability(CapabilityType.LOGGING_PREFS, logPrefs);
ChromeDriverService driverService = new ChromeDriverService.Builder().usingAnyFreePort()
            .usingDriverExecutable(main.getChromeDriverFile())
            .withLogFile(new File("/log.log")).build();
ChromeDriver  driver = new ChromeDriver(driverService, options);
... // Ваш код.

с Фоксом не работал, не подскажу. Но подозреваю что похоже.

READ ALSO
Как центрировать блок?

Как центрировать блок?

Добрый день изучаю верстку , и в примере в меню цена есть 3 блока с описанием цен и тдПроблема в том что он разложил эти блоки по grid колонкам...

176
Почему не изменяется scroll?

Почему не изменяется scroll?

Всем приветПри загрузке страницы, scroll должен сразу же сам изменять свое положение на 500px от top'a

199
Интересная галерея с кареткой

Интересная галерея с кареткой

Нашел интересную галерею

161
Jquery modal gallery не работают две колонки

Jquery modal gallery не работают две колонки

Всем добрый деньСтолкнулся такой проблемой

174