OWA上基本页面交互的Selenium挂起和超时



我使用Selenium和本地FireFox浏览器来访问live.com的垃圾邮件箱并阅读电子邮件。出于测试目的,我一直在使用"binding.price"与我的脚本交互,看看问题在哪里。

当我试图找到代表收件箱消息的元素时:

driver.find_element(:css,"#messageListContentContainer .ia_hc")

我在60秒后得到这个错误:

Timeout::Error: execution expired
from /usr/lib/ruby/1.8/timeout.rb:64:in `rbuf_fill'

但是,当我在Pry时,我可以很快重复同样的命令。大约5或10秒后,它就会找到元素。

很明显,我可以通过在呼叫周围放置beforerescueretry块来解决这个问题,但这意味着我必须等待70-80秒才能点击一封电子邮件。有人知道find_element为什么花了这么长时间才超时,或者为什么第二次没有超时吗?是因为live.com(网站上称为"Outlook Mail")有大量的元素可供搜索吗?这是他们使用的JavaScript的问题吗?

我已经能够用Firefox和PhantomJS 复制这个问题

更新::我发现在任何页面刷新后,所有调用都会发生这种情况。我可以调用driver.page_source,但我有同样的问题。在页面刷新后的一段时间内,硒似乎无法与浏览器交互。可能是硒在阅读网页上的所有内容时遇到了问题吗?

我在自己的测试中看到过这种情况,但这种情况是间歇性的,而且从未完全可重复。似乎发生的是Selenium WebDriver被阻塞并且没有响应。

我知道我只需要在代码中拯救错误、记录日志并重试。经过几次重试,Selenium WebDriver似乎再次响应,我可以继续进行测试。

我已经联系了RubyWebDrivergem的维护人员,他需要一个可重复的测试来进行一些可靠的调试。如果您能够提供一个可复制的测试用例,请与我们分享,以便我们能够调查这个问题。您可以将此要点作为与社区分享的起点。

问题神奇地消失了。它不再发生了,我不能复制它。祝硒工作人员好运,它似乎是随机出现和消失的。

相关内容

  • 没有找到相关文章

最新更新