如何使用Protractor / WebDriverJS检查元素是否显示而不等待?

时间:2016-09-14 11:11:31

标签: 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 个答案:

答案 0 :(得分:0)

如果你在检查元素的可见性时不想要任何默认等待,那么做一件事,就是在目标元素上执行任何操作,如 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,
    }
相关问题