使用 Selenium Webdriverwait 自动化具有 AJAX 的 Web 应用程序

You can write your topic about email list
Post Reply
soyeb01
Posts: 2
Joined: Thu Nov 02, 2023 8:36 am

使用 Selenium Webdriverwait 自动化具有 AJAX 的 Web 应用程序

Post by soyeb01 »

最初,当我开始从事 Web 自动化工作时,我面临的最大挑战是在自动化脚本执行速度和与所执行操作相对应的浏览器响应之间创建同步。浏览器的响应可能会很快很慢,通常由于多种原因而很慢,例如 – 网速慢、所使用的浏览器测试机性能慢等。在分析自动化结果时,我们可以看到最大数量的测试用例因失败而失败原因 - 在步骤执行期间未找到元素。自动化速度和对象存在之间的正确同步问题的解决方案是正确的等待管理。Selenium WebDriver 提供了各种类型的等待。 AJAX 与 Selenium Webdriverwait 一个简单的同步场景是 – 假设页面上存在一个按钮,单击该按钮后应该会出现一个新对象,但由于网速较慢,该新对象出现得很晚,因此我们的测试用例失败。

这里的“等待”可以帮助用户解决问题,同时通过刷新整个网页并重新加载新的网页元素来重定向到不同的网页。 “取决于多种因素,包括操作系统浏览器组合,WebDriver 可能会也 尼日利亚手机号码列表 可能不会等待页面加载。在某些情况下,WebDriver 可能会在页面完成甚至开始加载之前返回控制权。为了确保稳健性,您需要使用显式和隐式等待来等待元素存在于页面中。” 3 种主要的等待类型 隐式等待 显式等待 流畅等待 1)隐式等待: 隐式等待在 WebDriver 对象的生命周期内保持活动状态。换句话说,我们可以说它是在 Web 驱动程序对象的整个持续时间内设置的。隐式等待实现将首先确保该元素在 DOM(数据对象模型)中可用,如果不可用,则它将等待该元素在网页上出现特定的时间。 一旦超过指定的时间,它将尝试再次搜索上次抛出异常之前的元素。

Image

通常,隐式等待会轮询 DOM,每次当它找不到任何元素时,它就会等待该元素一段时间,并且由于隐式等待使脚本等待,因此测试的执行变得很慢。由于这个人非常熟练编写 selenium WebDriver 代码的人建议不要在脚本中使用它,并且为了良好的脚本应避免隐式等待。 例子: 以下是下面提到的应用隐式等待的步骤。 )显式等待: 显式等待和隐式等待之间的区别是隐式等待默认情况下将应用于测试用例的所有元素,而显式等待将仅应用于目标元素。 假设有一种情况,特定元素的加载时间超过一分钟。在这种情况下,我们肯定不希望为隐式等待设置很长的时间,因为如果我们这样做,浏览器将为每个元素等待相同的时间。为了避免这种情况,仅在所需元素上引入单独的时间。通过遵循此浏览器,每个元素的隐式等待时间都会很短,而对于特定元素来说,隐式等待时间会很长。
Post Reply