在應用程序中,很多字段都存在,並且所有字段都有過濾器(文本框)。所以一旦用戶在任何一個過濾器中輸入值,UI數據(UI表)將開始刷新。等待硒中的ui數據過濾器
我想等待數據在UI中加載,然後應用另一個過濾器。
有什麼辦法要等到數據被不使用的Thread.sleep
在應用程序中,很多字段都存在,並且所有字段都有過濾器(文本框)。所以一旦用戶在任何一個過濾器中輸入值,UI數據(UI表)將開始刷新。等待硒中的ui數據過濾器
我想等待數據在UI中加載,然後應用另一個過濾器。
有什麼辦法要等到數據被不使用的Thread.sleep
沒有您提供進一步的細節加載,所有我可以推薦現在是FluentWait。例如:
final WebDriver driver = ...
new FluentWait<>(driver).withTimeout(30, SECONDS)
.pollingEvery(1, SECONDS)
.ignoring(NoSuchElementException.class)
.until(
webDvr -> !webDvr.findElements(By.xpath("//tr")).isEmpty()
);
感謝您的回覆....我有類似的情況在頁面中我們有很多過濾器,默認情況下所有數據都顯示.....現在我想申請過濾器一個接一個,然後再應用第二個(下一個)過濾器想要等待第一個(上一個)過濾器的數據過濾。另外,默認情況下「// tr」與一些數據一起存在。請幫我解決這個問題,因爲我對硒世界很陌生。 –
我能執行此使用下面的代碼 -
public boolean isElementDisplayed(WebElement element) {
try {
WebDriverWait wait = new WebDriverWait(driver, 5);
wait.until(ExpectedConditions.visibilityOf(element));
return element.isDisplayed();
} catch (Exception e) {
return false;
}
}
public void loadingTimer(){
WebElement element = driver.findElement(By.xpath("//span[contains(text(),'Loading...')]"));
if (isElementDisplayed(element)) {
WebDriverWait wait = new WebDriverWait(driver , 5);
wait.until(ExpectedConditions.not(ExpectedConditions.visibilityOf(element)));
}
}
見:我如何做X?(https://meta.stackoverflow.com/questions/253069/whats-the-appropriate-new-current-close-reason-for-how-do-i-do-x)對SO的期望是用戶提出問題不僅僅是研究回答他們自己的問題,研究,代碼嘗試和結果。這表明你已經花時間去嘗試幫助自己,它使我們避免重申明顯的答案,最重要的是它可以幫助你得到更具體和相關的答案!另請參見:[問] – JeffC