我的代码是这样的:
my_array.each do |element|
within element do
some_element.click #it will take me to next page
some_other_element.click #it will take me to previous page for next iteration
end
end
在siteprism页面中,它是这样的:
elements :array, 'ul.class li'
当我运行时,它在第一次迭代中成功执行,但在第二次迭代中它的抛出错误如cache element not available
如果我导航到不同的页面,那么我将放宽my_array
元素的范围
任何人都可以帮我这个...... ??
答案 0 :(得分:3)
如果我导航到不同的页面,那么我将放宽数组元素的范围?
是的,范围已经改变。
它失败的原因是因为第一页运行循环时页面上的元素在第二页上不存在,即使它们看起来像是 - 它们是不同的元素。因为您已移动页面,所以您需要从头开始重新获取元素。
关于如何使其发挥作用......
问题中的代码似乎存在许多问题。首先是你的事实
在元素的上下文中使用within
块而不是节。我做的第一件事(不是
能够看到你的代码)是用elements
替换你的sections
,我会模拟任何
li
是一个部分。例如:
class MySection < SitePrism::Section
element :some_element, "#some-element"
element :some_other_element, "#some_other_element"
end
然后我将li
的{{1}}元素添加为页面中的部分集合,例如:
ul
为了解决范围界定问题,我会有以下内容:
class MyPage < SitePrism::Page
sections :list_items, MySection, 'ul.class li'
end