簡體   English   中英

Mocha / Chai-僅當元素存在,顯示或存在時,才單擊它進行測試

[英]Mocha/Chai - Test to click an element only if it's present, displayed or exists

我剛剛開始考慮使用Mocha / Chai框架使用Selenium進行測試,並且正在嘗試使用登錄功能。 我想檢查一個項目是否存在/顯示並單擊它。

目前,我的測試正在等待頁面加載,並且我想要類似以下的內容,但目前不起作用:

 var elementOnPage = driver.findElement(By.('elementId')).isDisplayed(); //var elementOnPage = driver.findElement(By.('elementId')).exist; if(elementOnPage == true){ driver.findElement(By.('elementId')).click(); } else{ driver.findElement(By.('anotherElement')).click(); } 

我也嘗試了上面的注釋行,但似乎都行不通。 在繼續之前,代碼似乎總是會碰到if語句的第二部分。 如果存在我要檢查的元素,則測試將執行下一行,但如果不存在,則測試將失敗,並顯示“ NoSuchElementError:No such element”。

我也沒有意識到我可以使用諸如exist(),isPresent()或isElementPresent()之類的東西。

有沒有人有任何想法或向我指出正確的方向? 我對此很陌生。

干杯

isDisplayed的返回值是一個承諾,但是您將其視為布爾值。

您需要執行以下操作:

driver.findElement(By.id('elementId')).isDisplayed().then(function (displayed) {
    if (displayed) {
        driver.findElement(By.id('elementId')).click();
    }
    else{
        driver.findElement(By.id('anotherElement')).click();
    }
});

或更簡而言之:

driver.findElement(By.id('elementId')).isDisplayed().then(function (displayed) {
    driver.findElement(By.id(displayed ? 'elementId' : 'anotherElement')).click();
});

順便說一句By.('elementId')無法正常工作。 我假設您是說By.id('elementId')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM