Python Selenium 等待 toast 消息消失

标签 python selenium click wait toast

我有一个页面,单击按钮后页面开始加载,几秒钟后出现一条 toast 消息。在寻呼加载器或 toast 消息消失后​​,我想单击另一个按钮将我带到另一个页面。

在 toast 消息出现之前,页面加载器会持续几秒钟(“ajax-disable request-loader...”),代码如下:

<div class="footer">
    <div class="footer-inner">
         <small>Loading time: 0.91898512840271 / Memory usage: 2.77&nbsp;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"))) 即使是随机的文本,它仍然可以工作。我想这不是它应该如何工作的。

我也尝试过,直到出现消息,但随后我得到打印(“未找到 toast 消息”)。

    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()

I tried this and it works with no error messages but whatever text I put in the ID ((By.ID, "random123")) even a random one it still works. And I guess it isn't how it is supposed to work.

这正是它的工作原理!我们验证没有 IDrandom 的元素!

注意:我添加了等待加载程序消失的时间。

关于Python Selenium 等待 toast 消息消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63722434/

相关文章:

java - 如何使用 Java 单击 Selenium Webdriver 中弹出窗口上的按钮

WPF动画扩展收缩高度

javascript - 捕获页面上任意位置的点击,甚至是链接上的点击

android - 改变声音/点击软键盘 - android

python - 使用 formatprg=autopep8 时如何设置正确的缩进?

python - Airflow 使用 RabbitMQ 消息代理分布式消息流

javascript - 调试 Protractor 到 Angular 同步问题的规范方法

python - 将嵌套的 JSON 结构反序列化为 Django 模型对象

python - 如何在另一个 def 中使用 .get() tkinter? Python

c# - Selenium 等待用户验证码输入 C#