【问题标题】:Robot selenium2library how to set wait for elements globally机器人 selenium2library 如何设置全局等待元素
【发布时间】:2017-03-30 20:21:04
【问题描述】:

我想问一下机器人中是否有一个选项(使用 selenium2library)来设置一些隐式等待应该在测试期间仅位于一个位置的所有元素? 目前我在关键字中的每个元素之前都等待(看起来不太好)

Wait Until Element Is Visible    ${repeated for each element}

前端是用 Angular 制作的。我发现这可能是问题的原因,我还找到了一些扩展的 selenium2library,但是我不能使用这个扩展库,因为我只能使用官方支持的库(现在只是 selenium2library)......

我还尝试在导入库时设置隐式等待和超时,但似乎没有帮助(如果我在每个元素之前注释我的“等待”,它会再次开始失败)

Library    Selenium2Library    10    15

有什么建议吗?在这种情况下,我真的必须在每个元素之前等待吗?

谢谢

【问题讨论】:

  • 我强烈建议您在等待中明确编码,否则您将不清楚究竟是什么影响了您的等待时间。请参阅 Jim Evan 的回复 - stackoverflow.com/questions/15164742/…
  • 感谢您的建议,我必须更深入地阅读它,因为第一次尝试后我不确定该怎么做:)
  • 所以如果我理解得很好,隐式和显式等待不应该混为一谈——没关系,我什至不想这样做。事实上,我想将显式等待实现为隐式等待——这似乎是不可能的。所以我必须决定是继续显式等待还是使用隐式等待 -> 我猜显式等待更好,所以我会继续。唯一的问题是在每个元素前面都有“等待元素可见”(或其他显式等待)看起来不太好。但似乎没有其他办法......所以谢谢! :)
  • 你可能想在这个场景中完全隐式,但是当你有一个奇怪的场景需要更长的时间时,你是否要将所有的等待时间再增加 2 秒?当你有 1000 个测试时呢?也许只是这一次你会添加一个明确的等待?在我看来,这是一条危险的路线。我很感激您不认为它看起来不错,但是您在 1 年后或新同事呢?他们如何知道这个隐含的等待时间?通过隐藏此类信息,您会引入不必要的复杂性。一定要花点时间考虑这些事情

标签: angularjs automated-tests wait robotframework selenium2library


【解决方案1】:

我不知道是否有更好的方法,但您可以尝试使用 Set Selenium Speed 减慢 Selenium:

Set Selenium Speed  0.5 seconds

http://robotframework.org/Selenium2Library/Selenium2Library.html#Set%20Selenium%20Speed

【讨论】:

  • 谢谢,我可以在全球范围内使用它吗?在关键字本身之外?因为我只能在每个关键字中找到实现..
猜你喜欢
  • 2017-09-09
  • 1970-01-01
  • 1970-01-01
  • 2013-11-18
  • 1970-01-01
  • 2022-01-23
  • 1970-01-01
  • 2020-08-29
  • 2019-05-02
相关资源
最近更新 更多