После 2 дней борьбы с ошибочной командой click () в Headless Chrome - в моем случае с элементом Anchor (a) с тегом href - и прохождением по различным потокам советов о chromeOptions (--start-maximized, --window-size и т. д.) и пытается 12 различными способами (с sendKeys и Actions и даже submit ()), чтобы обойти click () безуспешно ...
Использование ChromeDriver 77.0, Chrome 77.0.3865.75 и Selenium 3.141.59, мои тесты стабильны в Chrome и нестабильны в Headless Chrome из-за этого ошибочного щелчка ():
Например: Нажмите наelement (в моем случае это элемент anchor (a) с тегом href), как в Chrome, так и в Headless Chrome, и проверьте, что после этого появляется другой элемент
Добавление цикла и попытка catch ниже стабилизируют мои тесты и дают их результатынадежно!Есть ли другой способ, о котором вы можете подумать?
Test() {
for(int t = 0; t <= 2; t++) { //TRY CLICKING ON THE ELEMENT 3 TIMES
WebElement element =
wait.until(ExpectedConditions.presenceOfElementLocated(elementToFind));
wait.until(ExpectedConditions.visibilityOf(element));
wait.until(ExpectedConditions.elementToBeClickable(element));
try {
element.click(); //ERRATIC CLICK() ON HEADLESS CHROME
if(wait.until(ExpectedConditions.visibilityOfElementLocated(expectedElementAfterClick)).isDisplayed() == true)
break; //BUTTON WAS REALLY CLICKED
} catch (TimeoutException toe) { //BUTTON WASN'T REALLY CLICKED
if (t == 2) toe.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
break;
}
}
}
Я говорю "click () ошибочен в Headless Chrome", потому что команда click () всегда выполняется успешно (в противном случае NoSuchElement или StaleElementReferenceException илилюбое другое исключение будет найдено при нажатии на элемент) НО, иногда , элемент фактически не нажат . В других случаях , тот же самый тест и код выполняется гладко, и элемент фактически щелкается - я знаю это, потому что строка с visibilityOfElementLocated (ОжидаемыйElementAfterClick) выполняется, как и ожидалось.Эта проблема click (), в свою очередь, делает мои тесты нестабильными. Таким образом, результаты ненадежны .
Я подозреваю, что это действительно проблема Selenium.