我是使用硒Webdriver
並編寫c#
的新手。我在腳本中使用了很多thread.sleep()
命令來確保Selenium不會嘗試點擊太快。在大量的研究,我發現這是令人難以接受的,並有「更好」的方式來做到這一點,所以我開始使用: -Selenium c#wait.until(expectedconditions)...函數無法在屏幕上找到對象/元素
wait.Until(ExpectedConditions.ElementToBeClickable(By.Id("FieldId")));
等待在另一個類中定義爲: -
wait = new WebDriverWait(driver, new TimeSpan(0, 0, 0, 10));
我只能得到這個工作運行腳本的2/10倍沒有得到:
沒有這樣的元素例外:無法找到元素......
我現在有很多這個問題的例子,我已經停止使用thread.sleep
。經過大量的研究,我總是發現這是建議的方式,但它似乎完全不可靠。我錯過了什麼嗎?元素在2秒後總是在那裏,並且在10秒過去之前發生錯誤。我已經閱讀了至少10個其他類似的帖子,但沒有一個能夠解決這個問題......除了Thread.Sleep(5000)
!
如果你正在使用'WebDriverWait',你怎麼能''沒有這樣的元素異常',而它拋出'TimeoutException''? –
@SaurabhGaur'Until()'如果它們不在忽略列表中,則拋出異常 –
您還在使用隱式等待嗎?如果您同時使用隱式和顯式等待,您可能會收到意想不到的結果。 – JeffC