Только начала осваивать автоматизацию тестирования, столкнулась с тем, что 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 добавила пути к драйверам.
Начнем с того что не 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);
... // Ваш код.
с Фоксом не работал, не подскажу. Но подозреваю что похоже.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Добрый день изучаю верстку , и в примере в меню цена есть 3 блока с описанием цен и тдПроблема в том что он разложил эти блоки по grid колонкам...
Всем приветПри загрузке страницы, scroll должен сразу же сам изменять свое положение на 500px от top'a