簡體   English   中英

如果對象在Selenium Webdriver Java中不可見,如何使用xpath驗證對象

[英]how to verify object using xpath if object is invisible in selenium webdriver java

我如何使用Selenium Webdriver中的xpath驗證僅在不正確的數據輸入(文本框前的標簽,例如:登錄方案)上啟用的不可見對象。

如果所有標簽均顯示錯誤消息(例如,用戶名標簽和密碼標簽),則我可以驗證和捕獲文本(錯誤消息)。 xpath用戶名:.// [@ id ='loginForm'] / p [1] / p / label xpath密碼:.// [@ id ='loginForm'] / p [2] / p / label

但是,如果輸入正確的用戶名,Webdriver將繼續在Xpath中搜索用戶名(.//*[@id='loginForm']/p[1]/p/label),並且不會響應。

HTML僅在出現錯誤時可見:label class =“ error” generate =“ true” for =“ userName” label class =“ error” Generated =“ true” for =“ passwordField

誰能幫我這個?

使用WebDriverWait:

WebDriverWait waiting = new WebDriverWait(driver, 15, 100);
waiting.until(ExpectedConditions.invisibilityOfElementLocated(By.xpath("//*[@id='loginForm']/p[1]/p/label")));

上面的代碼將創建一個Web驅動程序等待對象,該對象最多等待15秒(每100毫秒檢查一次條件),以使該元素不可見。 如果在觸發代碼行時該元素已經不可見,則將立即通過。

根據以下評論進行編輯

如果您只是想找出不存在的元素,則可以執行以下操作:

List<WebElement> labelCount = driver.findElements(By.xpath("//*[@id='loginForm']/p[1]/p/label"));

如果大小為0,則標簽不存在,否則標簽在那里,因此類似:

if(labelCount.size() == 0){
    //Get tab text
} else {
    //Enter second field data
}

暫無
暫無

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

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