使用 Watir 让文本变得强大
Getting text in strong with Watir
我正在尝试获取 <strong>
中的文本。
Html代码是:
<div>
<a class="business-link"></a>
<a class="business-link">
<strong>Text</strong>
</a>
<a class="business-link"></a>
</div>
页面上有多个business-link
class,我只需要包含一个strong
的那个。
页面上有多个strong
,但是里面只有一个business-link
class。
我试过了:
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)
有什么想法吗?
p b.element(:tag_name => 'strong').text
下面的代码打印第一个强标签值
p b.elements(:tag_name => 'strong')[0].text
这将打印第二个。
p b.elements(:tag_name => 'strong')[1].text
遍历所有元素
b.elements(:tag_name,'strong').each do |i|
puts i.text
end
browser.a(:class => /business-link/).strong.text
的问题是它找到第一个 link 和 class "business-link" 然后 在里面link,查找 strong
元素。第一个 link 不是带有 strong
元素的那个。您真正想要告诉 Watir 的是找到第一个还包含 strong
元素的 link。
您可以创建 link 的集合并遍历它们直到找到 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"
我正在尝试获取 <strong>
中的文本。
Html代码是:
<div>
<a class="business-link"></a>
<a class="business-link">
<strong>Text</strong>
</a>
<a class="business-link"></a>
</div>
页面上有多个business-link
class,我只需要包含一个strong
的那个。
页面上有多个strong
,但是里面只有一个business-link
class。
我试过了:
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)
有什么想法吗?
p b.element(:tag_name => 'strong').text
下面的代码打印第一个强标签值
p b.elements(:tag_name => 'strong')[0].text
这将打印第二个。
p b.elements(:tag_name => 'strong')[1].text
遍历所有元素
b.elements(:tag_name,'strong').each do |i|
puts i.text
end
browser.a(:class => /business-link/).strong.text
的问题是它找到第一个 link 和 class "business-link" 然后 在里面link,查找 strong
元素。第一个 link 不是带有 strong
元素的那个。您真正想要告诉 Watir 的是找到第一个还包含 strong
元素的 link。
您可以创建 link 的集合并遍历它们直到找到 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"