我正在使用带有 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