Как использовать Protractor / WebDriverJS, чтобы проверить, отображается ли элемент без ожидания?

Как использовать транспортир, чтобы проверить, видим ли элемент без ожидания? Я из Java + WebDriver фона и новичок в Protractor. В Java я использовал следующее решение. Я ищу похожую функциональность.

Дополнительная информация: В настоящее время, если я использую isDisplayed(), WebDriver будет ждать, пока элемент не станет видимым (если он еще не отображен). Я хочу получить статус видимости без ожидания.

protected void turnOffImplicitWaits() {

    driver.manage().timeouts().implicitlyWait(0, TimeUnit.SECONDS);

}



protected void turnOnImplicitWaits() {

    driver.manage().timeouts().implicitlyWait(StartupConstants.TIMEOUT, TimeUnit.SECONDS);

}



protected boolean isElementHiddenNow(By by) {

    turnOffImplicitWaits();

    boolean result = ExpectedConditions.invisibilityOfElementLocated(by).apply(driver);

    turnOnImplicitWaits();

    return result;

}

1 ответ

Если вы не хотите никаких ожиданий по умолчанию при проверке видимости элемента, сделайте одно: просто выполните любую операцию, например, click() для целевого элемента, и добавьте функцию then() с двумя функциями в качестве параметров - одна для успеха, а другая за неудачу. Вы следуете за кодом ниже:

 var targetElement=element(locator);
 targetElement.click()
                   .then(function(toBeCalledWhenSuccess) { // fulfillment },    
                         function(reasonForRejection) { // rejection }
                        );

Добавьте код ниже в Conf.js

   jasmineNodeOpts: {
       // Default time to wait in ms before a test fails.
       defaultTimeoutInterval: 0,
    }
Другие вопросы по тегам