У меня вопрос по поводу вывода консула. У меня есть этот код в моей программе:
public static void ClickElementWhenClickable(By locator ) throws Exception {
WebDriver driver = WebDriverMgr.getDriver();
driver.manage().timeouts().implicitlyWait(IMPLICIT_WAITE, SECONDS);
Instant now = Instant.now();
while (Instant.now().isBefore(now.plusSeconds(IMPLICIT_WAITE)))
{
try
{
new WebDriverWait(driver, IMPLICIT_WAITE).until(ExpectedConditions.elementToBeClickable(locator)).click();
return;
}
catch (WebDriverException e)
{
// do nothing, loop again
}
}
throw new Exception("Not able to click element <" + locator + "> within " + IMPLICIT_WAITE + "s.");
}
Работает нормально. и нажмите элемент, только когда он кликабелен, и подождите несколько секунд. Проблема возникала в тех случаях, когда элемент не был найден несколько раз, а селен выдает ошибки консулу.
Пример:
Fri Nov 01 14:59:55 IST 2019:ERROR: element click intercepted: Element <button _ngcontent-mig-c11="" class="avatar-style ant-btn ant-btn-default ant-btn-circle" id="header-account" nz-button="" nz-popover="" nzplacement="bottomRight" nzshape="circle" nztrigger="click" ng-reflect-nz-shape="circle" ng-reflect-nz-content="[object Object]" ng-reflect-nz-trigger="click" ng-reflect-nz-placement="bottomRight" ng-reflect-directive-name-title="" nz-wave="[object Object]">...</button> is not clickable at point (1888, 31). Other element would receive the click: <div class="ant-notification-notice ant-notification-notice-closable ng-trigger ng-trigger-notificationMotion"
Есть ли способ не показывать эти ошибки (только если я в этом методе)? Я хочу упомянуть, что тест пройден, селен ждет, когда элемент станет активным, а затем нажмите на него. Однако за все время ожидания он просто распечатывает эти ошибки, которые мне не нужны. Я хочу, чтобы он выводил сообщение об ошибке только в том случае, если время истекло, и элемент не активен.
, например, если время: 13:15:00, а значение IMPLICIT_WAIT равно 12 секундам. Только в 13:15:13 я получу ошибку, а не между (имеется в виду, что я нахожусь в цикле while)
В настоящее время тесты пройдены и консул полон с ошибками траты. Я просто хочу, что если я использую этот специфический метод, ошибки не будут напечатаны. С уважением