Я учусь, как автоматизировать тесты с Selenium WebDriver, однако я застрял и не могу сделать выпадающее меню для работы в Firefox. Тот же код прекрасно работает в Chrome.
Сайт, на котором я практикуюсь:
http://www.executeautomation.com/demosite/index.html
и я хочу щелкнуть по следующему пункту в меню: Инструменты автоматизации> Selenium> Selenium WebDriver.
Сообщение об ошибке указывает на то, что веб-элемент еще не может быть загружен на экран, поэтому я реализовал некоторый метод для ожидания при каждом выполнении до появления элемента:
public static void ImplicitWait(WebDriver driver){
driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
}
но это не помогло.
Затем я прочитал, что лучше "направить" эти методы moveToElement (), а не выполнять их один за другим. Поэтому я изменил это:
action.moveToElement(menu).perform();
action.moveToElement(selenium).perform();
action.moveToElement(seleniumWebDriver).click().build().perform();
до одной строки. В этот момент он начал работать на Chrome, но я все еще пытаюсь заставить его работать на Firefox.
Текущий код выглядит следующим образом:
System.setProperty("webdriver.gecko.driver", "C:\\Drivers\\geckodriver-v0.24.0-win64\\geckodriver.exe");
System.setProperty("webdriver.firefox.bin", "C:\\Program Files\\Mozilla Firefox\\firefox.exe");
WebDriver driver = new FirefoxDriver();
ImplicitWait(driver);
driver.navigate().to("http://executeautomation.com/demosite/index.html");
WebElement menu = driver.findElement(By.id("Automation Tools"));
WebElement selenium = driver.findElement(By.id("Selenium"));
WebElement seleniumWebDriver = driver.findElement(By.id("Selenium WebDriver"));
Actions action = new Actions(driver);
action.moveToElement(menu).moveToElement(selenium).moveToElement(seleniumWebDriver).click().build().perform();
Как я уже упоминал выше, то же самое отлично работает, когда я переключаюсь на Chrome, но с Firefox я получаю сообщение об ошибке:
Exception in thread "main" org.openqa.selenium.interactions.MoveTargetOutOfBoundsException: (-9862, 206) is out of bounds of viewport width (1283) and height (699)
Я использую:
* Firefox v66.0.2
* Java v1.8.0_201
* Selenium Java v3.141.59
* GeckoDriver v0.24.0
Пожалуйста, помогите.