我正在使用Rspec和Watir-webdriver进行一些自动化操作--目前我有两种不同的方法,它们使用如下所示的公共代码片段
# The snippet shown is meant to find a specific div, and when an element within it is present, then perform the click action
search_modal = @browser.div(:class, 'asset-search')
search_modal.when_present do
search_modal.div(:class, 'quick-search').click
end我为一种方法运行了它,它工作正常,没有错误。我在我的第二个方法上运行它,它将在30秒后超时。快进到今天早上,第二种方法现在可以正常运行了。
同样,这是在两种不同方法中使用的相同代码。使用#wait方法有什么潜在的问题吗?如果这些都是出了名的易碎或挑剔,有没有更好的方式来编码呢?
谢谢
发布于 2016-05-18 00:04:38
我怀疑你的问题的一部分可能是你正在创建一个变量,这个变量一旦创建就基本上是静态的。因此,它要么是一个div对象,然后通过当前测试,要么是一个null对象,它将在出现之前超时。(除非我很困惑)
试试这个,看看有没有更好的效果。
@browser.div(:class, 'asset-search').div(:class, 'quick-search').when_present.click如果出现错误,您可能需要分两个阶段进行
@browser.div(:class, 'asset-search').wait_until_present
@browser.div(:class, 'asset-search').div(:class, 'quick-search').when_present.click或者,如果只有一个带有quick-search类的div实例(因此您不需要将浏览器限制为在asset-search div中查找它),那么您可以这样做
@browser.div(:class, 'quick-search').when_present.clickhttps://stackoverflow.com/questions/37210866
复制相似问题