0
請幫助我理解以下問題。請。有條件的等待vs隱含等待 - 硒
我必須得到所有鏈接並稍後檢查。我用下面的代碼:
open(url);
List<String> links = new ArrayList<>();
for (SelenideElement link : $$("a"))
links.add(link.attr("href"));
,當我與這些版本的API使用本使用Linux: Maven的3.1 硒V3.5 硒v2.53 火狐v45.0.1 然後代碼不能花時間足以捕獲來自頁面的鏈接。然後,我必須在獲取鏈接之前添加驅動程序等待。 我添加以下(這是有條件的等待):
WebDriverWait waitLog = new WebDriverWait(WebDriverRunner.getWebDriver(), 20);
waitLog.until(ExpectedConditions.visibilityOf($(By.tagName(Selector))));
它工作得很好,我運行一個以上的時間。
昨天運行時,我感到很驚訝,它沒有工作,並沒有足夠的時間來獲得鏈接!
所以我替換隱等待條件等待,並添加以下內容:
WebDriverRunner.getWebDriver().manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
現在是工作的罰款。
發生了什麼事?
這是什麼讓它有時有時工作,有時不能工作?
如何返回到有條件的等待,保持代碼正常工作?
那麼如何恢復這個問題呢?並防止這個問題在未來發生。