2016-09-14 55 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){ //拒絕 }); –

相關問題