我试图通过使用类' menu-item-text'迭代一些跨度来寻找导航链接。我的目标是比较span标签内的内容,看它是否是正确的点击导航控件(没有硬件ID。)我的代码是这样的:
navlinks = @browser.spans(:class, 'menu-item')
navlinks.each do |this|
puts "'#{this.text}'"
if this.text == link_name
this.click
break
end
我确信我得到了正确的元素。但是,文本始终为空字符串。我的第二个想法是使用.html而不是.text,但返回的内容如下:
<span class="menu-item">Insights</span>
我想要的是&#34;见解&#34; span中的文本,而不是包含标记标记的完整html。我也尝试过使用this.span.text,但这也不起作用。
如何通过watir的内容抓取方法专门定位元素的内部html?
谢谢!
答案 0 :(得分:6)
假设您使用的是Watir-Webdriver v0.6.9或更高版本,则添加了inner_html
方法来获取内部HTML。
对于跨度:
<span class="menu-item">Insights</span>
你可以这样做:
@browser.span(:class => 'menu-item').inner_html
#=> "Insights"
同样,您可以尝试在循环中使用此方法,而不是.text
。
请注意,根据文字的唯一性,您可以简单地检查文字是否出现在元素&#39; s(外部)html中:
@browser.spans(:class => 'menu-item', :html => /#{link_name}/).click