【发布时间】:2013-08-06 11:13:51
【问题描述】:
等待元素出现在网页上的最佳方式是什么?我读过我们可以使用隐式等待和 webdriverwait、fluentwait 等函数,最后但并非最不重要的是 thread.sleep()...我使用最多但想完全停止使用。
我的场景:
用户登录到网站...网站检查凭据并以覆盖的形式向用户提供优惠(一种弹出窗口,但不是单独的窗口)。我需要验证叠加层上的文本。 用户登录和显示叠加层之间存在时间间隔。什么是最好的方法,以便硒只等到元素不可见的时候。由于覆盖不是单独的页面,而是主页面的一部分,所以隐式等待根本不起作用。
欢迎所有建议...:)
【问题讨论】:
-
我建议使用 fluent wait,因为它可以很好地控制 ping 时间和总持续时间。但是除非您指定的时间很少,否则隐式等待也应该起作用。可能您正在检查元素是否存在并且此时代码正在中断。
-
我建议使用 webdriverwait 或 fluentwait。我不喜欢隐式等待,我绝对不喜欢 sleep(),因为两者都经常在不需要的时候导致等待。您可以使用 wait.until() 等待相当多的 ExpectedConditions
标签: selenium selenium-webdriver