我有分页页面。有几个带有命名链接的 list_item 元素。每个列表项都有一些属性,我想在找到具有所需链接名称的页面后使用这些属性。
list_items(:app_thumbs) { |page| page.app_thumbs_list_element.list_item_elements }
######attributes#################
link(:app_name_link, :class => /app-name/)
list_item(:app_icon_link, :class => /app-icon/)
div(:app_description, :class => /description/)
div(:app_actions, :class => 'action')
link(:add_to) { |page| page.app_actions_element.link_element(:text => 'Add to') }
link(:remove_from) do |page|
page.app_actions_element.link_element(:text => 'Remove from')
end
link(:launch) { |page| page.app_actions_element.link_element(:text => 'Launch') }
link(:view_a_demo){ |page| page.app_actions_element.link_element(:text => 'View') }
link(:request_app){ |page| page.app_actions_element.link_element(:text => 'Request') }
但据我所知,我不能这样写:
def the_app_thumb_find(name)
find_page_with_app name
app_thumbs_elements.each { |the_thumb| return the_thumb if the_thumb.app_name_link.text == name}
end
然后使用例如:
@the_thumb = the_app_thumb_find(name)
@the_thumb.remove_from
因为我得到了对象 the_thumb 的 app_name_link 不存在的错误。
你能给点建议吗?我想为这些属性构建 DSL 并在之后使用它。但现在我只能使用:
the_thumb.link_element(:class => /app-name/).click
所以每次我想用这个属性进行操作时,我都必须使用 :class => /app-name/ 。