Ruby 使用site_prism获取所选选项文本的正确方法是什么?

Ruby 使用site_prism获取所选选项文本的正确方法是什么?,ruby,capybara,site-prism,Ruby,Capybara,Site Prism,我有一个指向选择框的元素。像这样: class MyPageObject < SitePrism::Page element :my_select_box, '#select-box-id' end 我找不到一个好方法来获取所选选项文本。我发现的唯一解决办法是: my_page_object.my_select_box.find("option[selected]").text 使用SitePrism API有更好的方法吗?因为上面的解决方法混合使用了SitePrism和capyb

我有一个指向选择框的元素。像这样:

class MyPageObject < SitePrism::Page
  element :my_select_box, '#select-box-id'
end
我找不到一个好方法来获取所选选项文本。我发现的唯一解决办法是:

my_page_object.my_select_box.find("option[selected]").text

使用SitePrism API有更好的方法吗?因为上面的解决方法混合使用了SitePrism和capybara API,这对我来说似乎并不理想。

我从来没有这样做过,但一种方法可能是将:我的选择框定义为一个节,然后在该节下访问所选元素

class SelectSection < SitePrism::Section
  element :selected, 'option[selected]'
end

class MyPageObject < SitePrism::Page
  section :my_select_box, SelectSection, '#select-box-id'
end
但是,一个好问题是为什么要访问文本-如果是因为要对照已知文本验证所选项目的文本,最好使用Capybaras选择器将元素声明为select,以便可以使用内置的查找器选项

class MyPageObject < SitePrism::Page
  element :my_select_box, :select, 'select-box-id' # since it's now using Capybaras :select selector it's no longer a css selector so no # in front
end

你知道我在哪里可以找到关于可用的“水豚选择器”的文档吗,例如,你上面提到的:select,但是链接的选择器是什么?例如,是:a还是:link还是其他?当您使用SitePrism方法检查值时,我从未看到选择:“文本…”。。。。是否有更多文档记录了此“已选择”或其他值(例如单选按钮等)。@Mickeel最好的地方是查看提供的选择器的Capybara源-从
my_page_object.my_select_box.selected.text
class MyPageObject < SitePrism::Page
  element :my_select_box, :select, 'select-box-id' # since it's now using Capybaras :select selector it's no longer a css selector so no # in front
end
expect(my_page_object).to have_my_select_box(selected: 'the text expected to be selected')