Watir得到<span>的INNER html

New*_*013 3 html ruby watir cucumber

我试图通过使用类'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
Run Code Online (Sandbox Code Playgroud)

我知道我确实得到了正确的元素.但是,文本始终为空字符串.我的第二个想法是使用.html而不是.text,但返回的内容如下:

<span class="menu-item">Insights</span>
Run Code Online (Sandbox Code Playgroud)

我想要的是跨度内的"见解"文本,而不是包含标记标记的完整html.我也尝试过使用this.span.text,但这也不起作用.

如何通过watir的内容抓取方法专门定位元素的内部html?

谢谢!

Jus*_* Ko 7

假设您使用的是Watir-Webdriver v0.6.9或更高版本,inner_html则添加了一种用于获取内部HTML的方法.

对于跨度:

<span class="menu-item">Insights</span>
Run Code Online (Sandbox Code Playgroud)

你可以这样做:

@browser.span(:class => 'menu-item').inner_html
#=> "Insights"
Run Code Online (Sandbox Code Playgroud)

同样,您可以尝试在循环中使用此方法而不是.text.

请注意,根据文本的唯一性,您可以简单地检查文本是否出现在元素的(外部)html中:

@browser.spans(:class => 'menu-item', :html => /#{link_name}/).click
Run Code Online (Sandbox Code Playgroud)