【发布时间】:2015-03-14 01:17:35
【问题描述】:
我正在使用 webdriver 在与元素交互之前等待的行业标准编写 selenium 测试脚本,但我仍然经常发现我的测试失败,这似乎是由于竞争条件造成的。
这是我最近遇到的例子:
- 转到产品目录页面
- 应用过滤器
- 等待过滤器应用
- 点击应用过滤器后加载的产品上的保存按钮
第 4 步仅在我将 Thread.Sleep() 放在步骤前面时才有效 - 使用 webdriverwait 还不够。我猜这是因为 webdriverwait 只等到元素附加到 DOM,即使相关的 JavaScript 点击事件尚未添加到元素。
您如何解决这个问题?是否有处理这种竞争条件的行业标准?
编辑 升级到最新版本的 Firefox 解决了这个问题。谢谢大家!
【问题讨论】:
-
去掉线程休眠的时候报什么错?是否在应用过滤器时禁用按钮并在过滤器应用完成后启用按钮?
-
@shri046 应用过滤器后会加载保存按钮。当我删除 thread.sleep 时,没有错误。 Selenium 将单击保存按钮。问题是当 selenium 点击时没有任何反应(我假设发生这种情况是因为按钮加载后没有附加 javascript 点击事件)。如果我解释得不好,请告诉我。
-
这是有道理的,但我的问题更多的是在应用过滤器时按钮“变灰”了一小段时间。换句话说,是在应用过滤器之前和之后附加到 DOM 的按钮,唯一的区别是在应用过滤器时启用/禁用按钮。
标签: selenium automation automated-tests