我正在尝试将文字放在<strong>
内
Html代码是:
<div>
<a class="business-link"></a>
<a class="business-link">
<strong>Text</strong>
</a>
<a class="business-link"></a>
</div>
页面上有多个business-link
课程,我只需要包含strong
的课程。
页面上有多个strong
,但business-link
类中只有一个browser.a(:class => /business-link/).strong.text
。
我试过了:
browser.link(:class => /business-link/).strong.text
和
unable to locate element, using {:tag_name=>"strong"} (Watir::Exception::UnknownObjectException)
但是在尝试时:
?
有什么想法吗?
答案 0 :(得分:0)
6
以下代码打印第一个强标记值
p b.element(:tag_name => 'strong').text
这将打印第二个。
p b.elements(:tag_name => 'strong')[0].text
迭代所有元素
p b.elements(:tag_name => 'strong')[1].text
答案 1 :(得分:0)
browser.a(:class => /business-link/).strong.text
的问题在于它找到了第一个带有类&#34; business-link&#34;的链接。 然后在该链接中查找strong
元素。第一个链接不是具有strong
元素的链接。你真正想告诉Watir的是找到第一个也包含strong
元素的链接。
您可以创建链接集合并迭代它们,直到找到strong
元素:
business_links = browser.links(class: 'business-link')
business_link = business_links.find { |link| link.strong.exist? }
business_link.strong.text # or simply `business_link.text`
#=> "Text"
如果您对:css
(或:xpath
)定位器感到满意,可以更简洁地写为:
browser.strong(css: 'a.business-link > strong').text
#=> "Text"