当多个元素保持相同的类名时,我们如何获取所有元素值。
例如: 考虑我有n个具有相同类名的元素如下
<span class="country-name">Country 1</span>
<span class="country-name">Country 2</span>
<span class="country-name">Country 3</span>
<span class="country-name">Country 4</span>
<span class="country-name">Country 5</span>
如何获取具有class_name的所有元素值为country_name。
我也尝试过如下:
span(:country, :class => 'country-name')
puts country
执行时,仅打印第一个值(国家1),不打印其他值。我怎样才能获得所有价值?
有什么建议吗?
答案 0 :(得分:0)
您可以创建一个集合访问器,它返回所有相关的跨度(即具有“country-name”类的那些)。
在页面对象中,不要调用span
,而是调用复数版本 - spans
:
class MyPage
include PageObject
spans(:country, :class => 'country-name')
end
这将创建一个country_elements
方法,返回一个包含所有匹配跨度的数组。您可以遍历此数组以获取每个国家/地区的文本(元素):
page = MyPage.new(browser)
page.country_elements.each{ |c| puts c.text }
#=> "Country 1"
#=> "Country 2"
#=> "Country 3"
#=> "Country 4"
#=> "Country 5"