如何解决Python Selenium等到吐司消息消失
我有一个页面,单击按钮后,该页面开始加载,并在几秒钟后显示一条敬酒消息。在传呼机或吐司消息消失之后,我想单击另一个按钮,将我带到另一页。
在举杯消息出现之前,有几秒钟的页面加载程序(“ 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消失了,在同一位置出现了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")))
中输入的任何文本,即使是随机文本也仍然有效。我想这不是应该如何工作的。
我也尝试过直到消息出现,但随后我得到了打印(“找不到吐司消息”)。
try:
WebDriverWait(driver,20).until(EC.presence_of_element_located((By.ID,"toast-container")))
except TimeoutException:
print("toast message not found")
任何想法正确的方法是什么?谢谢。
解决方法
如果您知道toast
ID,那么正确的方法就是您所做的事情。
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"))
中输入的任何文本,即使是随机文本也仍然有效。我想这不是应该如何工作的。
这就是它的工作方式!我们确认没有ID为“随机”的元素!
注意:我添加了一个等待加载程序消失的操作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。