我有一個頁面,單擊按鈕后頁面開始加載,幾秒鐘后出現(xiàn)一條 toast 消息。在尋呼加載器或 toast 消息消失后,我想單擊另一個按鈕將我?guī)У搅硪粋€頁面。在 toast 消息出現(xiàn)之前,有一個頁面加載器持續(xù)幾秒鐘(“ajax-disable request-loader...”),代碼如下:<div class="footer"> <div class="footer-inner"> <small>Loading time: 0.91898512840271 / Memory usage: 2.77 MB</small> </div> <div class="footer-tools"> <span class="go-top"> <i class="fa fa-angle-up"></i> </span> </div></div><!-- END FOOTER --><!-- END BODY --><div class="ajax-disable request-loader-AX3d868Qh30tNqeQ5KtqqFF" style="position: absolute; left: 20px; top: 137.535px; width: 876px; height: 2850px;"></div></body></html>之后,帶有頁面加載器的 div 消失,并且在同一位置出現(xiàn) toast 消息的代碼,如下所示:<!-- END FOOTER --><!-- END BODY --><div id="toast-container" class="toast-top-right">...</div></body></html>然后它也消失了。我的代碼如下:WebDriverWait(driver, 15).until(EC.invisibility_of_element_located((By.ID, "toast-container")))driver.find_element_by_id("back").click()我嘗試了這個,它可以正常工作,沒有錯誤消息,但無論我在 ID 中輸入什么文本,((By.ID, "random123")))即使是隨機(jī)的文本,它仍然可以工作。我想這不是它應(yīng)該如何工作的。我也嘗試過,直到出現(xiàn)消息,但隨后我得到打?。ā罢也坏酵滤鞠ⅰ保?。 try: WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.ID, "toast-container"))) except TimeoutException: print("toast message not found")知道什么是正確的方法嗎?謝謝。
1 回答

大話西游666
TA貢獻(xiàn)1817條經(jīng)驗 獲得超14個贊
如果您知道toastID,那么正確的方法就是您所做的。
wait = WebDriverWait(driver, 15)
wait.until(EC.invisibility_of_element_located((By.CSS_SELECTOR, "[class^='request-loader']")))
wait.until(EC.invisibility_of_element_located((By.ID, "toast-container")))
driver.find_element_by_id("back").click()
我嘗試了這個,它可以正常工作,沒有錯誤消息,但無論我在 ID 中輸入什么文本,((By.ID, "random123"))即使是隨機(jī)的文本,它仍然可以工作。我想這不是它應(yīng)該如何工作的。
這正是它的工作原理!我們驗證沒有帶有IDas 的元素random!
注意:我添加了等待加載程序消失的時間。
添加回答
舉報
0/150
提交
取消