Ruby on rails 如何在SitePrism节集合中搜索与特定条件匹配的节
我定义了一个Ruby on rails 如何在SitePrism节集合中搜索与特定条件匹配的节,ruby-on-rails,automated-tests,capybara,site-prism,Ruby On Rails,Automated Tests,Capybara,Site Prism,我定义了一个sections元素,该元素包含一个单独元素的列表,用于为数据表建模。Sections集合的每个部分对应于表中的一行,Sections定义的每个元素对应于行中的一列 我想在Sections集合中搜索对应于具有给定id的行的节,然后单击该行的元素 不幸的是,我找不到搜索PageObjectClass.返回的节对象数组的方法 相反,如果我将行集定义为elements,则PageObjectClass。返回一组Capybara元素,我可以在这些元素上执行Capybara查找,但无法使用Si
sections
元素,该元素包含一个单独元素的列表,用于为数据表建模。Sections集合的每个部分对应于表中的一行,Sections定义的每个元素
对应于行中的一列
我想在Sections集合中搜索对应于具有给定id的行的节,然后单击该行的元素
不幸的是,我找不到搜索PageObjectClass.
返回的节对象数组的方法
相反,如果我将行集定义为elements
,则PageObjectClass。
返回一组Capybara元素,我可以在这些元素上执行Capybara查找,但无法使用SitePrism节.element
语法
使用elements.find
语法似乎有一种代码味道,因为到目前为止,用于访问元素的CSS已经在PageObject类定义中抽象出来了-现在我必须在测试代码中引用特定元素的CSS,以便单击它
我错过了什么?为什么在SitePrism在线讨论中使用数据表的例子如此之少,为什么没有更多的人遇到这个问题
我唯一想到的是
这个建议有什么结果吗?回答我自己的问题
我想到的唯一方法是向page对象类添加一个方法,以遍历各个部分,找到与给定id匹配的元素
至少这封装了页面对象中元素的CSS
似乎应该有更好的方法,或者至少应该将这种方法定义为SitePrism gem的一部分?来回答我自己的问题
我想到的唯一方法是向page对象类添加一个方法,以遍历各个部分,找到与给定id匹配的元素
至少这封装了页面对象中元素的CSS
似乎应该有更好的方法,或者至少应该将这种方法定义为SitePrism gem的一部分?您可以在原始调用中使用带有文本:“value”的capybara查询选择器
因此,如果您有5个id为#foo
的节,您可以定义节:my#foo,#foo,text:'fifth'
这只会返回一个部分,瞧
或者,您可以使用#detect
对它们进行迭代,一旦找到第一个正匹配项,它就会停止。因此,您可以执行my_sections.detect{| section | section.text=='First match'}
您可以在原始调用中使用带有text:'value'
的capybara查询选择器
因此,如果您有5个id为#foo
的节,您可以定义节:my#foo,#foo,text:'fifth'
这只会返回一个部分,瞧
或者,您可以使用#detect
对它们进行迭代,一旦找到第一个正匹配项,它就会停止。因此,您将执行my|u sections.detect{| section | section.text=='First match'}