【问题标题】:Selenium click on elements works only in debug modeSelenium 点击元素仅在调试模式下有效
【发布时间】:2014-07-22 19:07:19
【问题描述】:

我创建了一个点击元素 X 的测试。
此元素仅在您单击另一个按钮后才会显示,
并且这些元素与 ng-hide 相连。

当我尝试运行我的代码时,点击 X 元素不起作用。
但是,在调试模式下或添加 1 秒睡眠后,它确实如此。

我在 python 中使用 selenium 框架,远程 webdriver 的 ImplicitlyWait 为 10 秒。

有人知道这种行为的原因吗?

【问题讨论】:

  • 我认为您回答了自己的问题:“添加 1 秒睡眠后”。听起来像是时间问题。

标签: python angularjs testing selenium


【解决方案1】:

正如@Siking 所说,这显然是一个时间问题。

事实上,Selenium 比加载元素的速度非常快。 有时,Selenium 需要暂停或休眠以确保元素存在。

我还建议 - 特别是对于异步请求 - 使用 waitForElementPresent 等到 ajax 方法完成。

【讨论】:

  • 我可以将 WebDriver 配置为在操作任何操作之前显式等待几毫秒吗?合理性是使这种配置通用,而不是代码中的单一睡眠
  • 我不认为你可以做这样的事情。我假设您可以像 Selenium IDE 那样设置测试用例的速度,但即使在这种情况下;即使您将其设置为最慢;由于无法估计异步查询的执行时间,您会遇到问题。例如,如果你有一个巨大的延迟问题;你所有的测试都会出错。
猜你喜欢
  • 2021-05-20
  • 2016-04-03
  • 2016-10-19
  • 1970-01-01
  • 1970-01-01
  • 2022-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多