По умолчанию эта кнопка предполагается быть по центру, но во время некоторых тестов автоматизации он неожиданно смещается либо в правый, либо в левый угол экрана. Это приводит к возникновению ElementNotFoundException в Selenium Java, поскольку элемент больше не находится в ожидаемой позиции.
//код для нажатия кнопки загрузки файла
Код: Выделить всё
Utilities.wait(2);
JavascriptExecutor executor = (JavascriptExecutor) driver;
Utilities.executorClick(uploadPage.uploadFile, driver);
Utilities.wait(2);
Код: Выделить всё
public static void wait(int wait) throws InterruptedException {
try {
new WebDriverWait(driver,20).until(ExpectedConditions.invisibilityOf(driver.findElement(By.xpath("//div[text()='Loading']"))));`
}catch(Exception e) {
}
Thread.sleep(wait * 1000);
}
Код: Выделить всё
public static void executorClick(WebElement webElement, WebDriver driver) {
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("arguments[0].click();", webElement);
}
Мы ищем эффективный способ справиться с этим сценарием в Selenium, чтобы гарантировать, что наш тест не будет выйти из строя из-за этого неожиданного смещения элемента. Существует ли в Selenium Java метод или передовая практика для выявления элементов, которые могут динамически менять местоположение, и взаимодействия с ними?
Будем очень признательны за любые идеи по обработке такого типа поведения!
Подробнее здесь: https://stackoverflow.com/questions/790 ... ion-execut
Мобильная версия