Я использую Selenium, Maven, TestNG и Java для запуска автоматических тестов в Firefox.Ранее я использовал Firefox v52, gauva v21, testng v6.9.10, selenium-java v3.4.0 и commons.io v2.1 (из pom.xml).Я обновил до Firefox v60, что означает обновление всех зависимостей.У меня проблема в том, что когда я запускаю одни и те же тесты (независимо от тестов), они терпят неудачу, потому что элемент не переносится в область просмотра, что было сделано по умолчанию в Firefox v52.Я могу взаимодействовать с элементом, например получать текст или размер всех элементов на странице, но не могу щелкнуть.Вот ссылка на то, что происходит https://www.hskupin.info/2017/12/15/element-interactability-checks-with-geckodriver-and-firefox-58/. Я попытался обновить moz: webdriverClick, но я предполагаю, что это доступно только для Firefox v58 (возможно, v59).
Вот зависимости в моем обновленном pom.xml
<dependency>
<groupId>com.google.com</groupId>
<artifactId>guava</artifactId>
<version>23.6-jre</version>
</dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.9.10</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.11.0</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons.io</artifactId>
<version>2.1</version>
</dependency>
мой java-файл
public class Assassinate {
protected WebDriver driver;
public WebDriver getDriver() {
return driver;
}
@BeforeMethod(alwaysRun = true)
public void beforeMethod() throws Exception {
String customProfile = System.getProperty("customFirefoxProfile");
FirefoxProfile profile = new FirefoxProfile(new File(customProfile));
FirefoxOptions fo = new FirefoxOptions();
System.setProperty("webdriver.gecko.driver", "resources/geckodriver");
fo.setAcceptInsecureCerts(true);
fo.setProfile(profile);
driver = new FirefoxDriver(fo);
driver.manage()timeouts().implicitlyWait(10, TimeUnit.SECONDS);
}
@AfterMethod(alwaysRun = true)
public void tearDown() throws Exception {
getDriver().quit();
TemporaryFilesystem.getDefaultTmpFS().deleteTemporaryFiles();
}
@Test (groups = {"test"})
public void firstTest () {
getDriver().get("someurl");
getDriver().findElement(By.id("id")).click();
}
}
Я удалил DesiredCapabilities и обновился до параметров Firefox.Я также добавил путь к геккодриверу.Это приводит меня к открытию URL-адреса, и я получаю успех, но он не будет щелкать по элементу, потому что он вне поля зрения.Если я выберу элемент, который отображается, я могу щелкнуть по нему хорошо.В конечном итоге я хотел бы проводить свои тесты без головы, что я могу сделать, но эта проблема останавливает все.Кто-нибудь еще мог обойти это или найти решение?Я не получаю никаких ошибок, так что никакой помощи там нет.ТИА.