2016-09-14 33 views
0

如何使用量角器来检查一个元素是否可见而不需要等待? 我来自Java + WebDriver背景,也是新增到量角器。在Java中,我使用了以下解决方案。我正在寻找类似的功能。如何使用量角器/ WebDriverJS来检查一个元素是否显示无需等待?

更多信息:目前,如果我使用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; 

} 
+0

为什么你想要的 - 什么情况下使用你想覆盖?它是这样的:你有一个元素,最初是不可见的,但随后变得可见,你想要捕捉它是不可见的第一..? – alecxe

回答

0

如果你不希望任何默认的等待,同时检查元素的知名度,做一两件事,这只是执行像点击()目标元素,并添加则()函数有两个任何操作作为参数 - 一个用于成功,另一个用于失败。您按照下面的代码:

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, 
    } 
+0

但如果该元素是不可见的webdriver会等待一段时间,直到它是可见的权利?我希望在不等待的情况下获得可见性状态。你能确认吗? –

+0

我不这么认为。为什么要这个特定的条件? –

+0

或尝试对元素执行任何操作并使用代码 - targetElement.click()。然后(函数(值){ //履行 },函数(reasonForRejection){ //拒绝 }); –

相关问题