我正在使用带有 Selenium 驱动程序(带有Minitest和Test Unit)的Ruby 1.9.3和Capybara 2.1,以测试Web应用程序。

我正在为StaleElementReferenceException问题而苦苦挣扎。我已经看到了很多有关该主题的讨论,但是我还没有找到解决所面临问题的解决方案。

因此,基本上,我正在尝试使用以下代码在页面上找到所有分页元素:

pagination_elements = page.all('.pagination a')

然后,我对这些元素进行断言,例如:
pagination_elements.first.must_have_content('1')

在做出这些断言之后,我将通过单击“下一页”链接继续测试,以确保我将来的第一个分页元素将是“上一页”。
为此,我再次检索了分页元素:
new_pagination_elements = page.all('.pagination a')

而且这里发生了过时错误,因为我正在到达已经到达的元素。 (Here is the error)

您可以看到链接状态here

我真的不知道如何使此通用测试正常工作。
您有什么技巧可以更好地实现我的分页元素吗?

最佳答案

有时,我对AJAX密集型页面有一些问题,就我而言,此解决方法可以解决该问题:

begin
  ...
rescue Selenium::WebDriver::Error::StaleElementReferenceError
  sleep 1
  retry
end

10-08 08:18
查看更多