Rim*_*ian 2 ruby capybara ruby-on-rails-3 pageobjects site-prism
我正在使用site_prism来实现水豚中的页面对象模型。看起来很有趣。
我如何指定一个选择器,例如“[data-id='x']”,其中x是整数?像这样的东西:
class Home < SitePrism::Page
set_url "http://www.example.com"
element :row, "[data-id='@id']"
end
Run Code Online (Sandbox Code Playgroud)
然后在我的测试中:
Then /^the home page should contain a row$/ do
@home.should have_row 1234
end
Run Code Online (Sandbox Code Playgroud)
由于 SitePrism 在定义元素时设置元素定位器,因此您的建议不起作用。为了实现您的要求,请查看以下内容:
class Home < SitePrism::Page
elements :rows, "tr[data-id]"
def row_ids
rows.map {|row| row['data-id']}
end
end
Run Code Online (Sandbox Code Playgroud)
它们不是映射单行,而是全部映射(使用elements
而不是element
)。一个名为 的单独方法row_ids
收集具有“data-id”值的所有行,将所有这些值映射到一个新数组中,然后返回该新数组。
然后测试将包含以下内容:
Then /^the home page should contain a row$/ do
@home.row_ids.should include @id
end
Run Code Online (Sandbox Code Playgroud)
...它将检查是否存在 ID 匹配的行@id
。
不太漂亮,但应该可以。
归档时间: |
|
查看次数: |
4247 次 |
最近记录: |