我必须从网页中检索文本并将其放在控制台上。 我无法从下面的HTML获取文本。任何人都可以帮助我。
<div class="twelve columns">
<h1>Your product</h1>
<p>21598: DECLINE: Decline - Property Type not acceptable under this contract</p>
<div class="row">
</div>
我在irb上尝试b.div(:class => 'twelve columns').exist?
,并说true
。
我试过这个 - b.div(:class => 'twelve columns').text
,它会在标题中返回不在段落中的文字。
我尝试了 - b.div(:class => 'twelve columns').p.text
,它返回了我error - unable to locate element, using {:tag_name=>"p"}
答案 0 :(得分:0)
简单地在你写的例子中这样做是为我工作的:
browser.div(:class => 'twelve columns').p.text
您最好的选择是检查您的页面css是否实际提供了元素结构,以及它们是否正确嵌套。
答案 1 :(得分:0)
我稍微修改了你的HTML:
<div class="twelve columns">
<h1>Your product</h1>
<p>21598: DECLINE: Decline - Property Type not acceptable under this contract</p>
<div class="row"></div>
</div>
让我们举一个小例子:
div = b.div(:class => 'twelve columns')
元素的枚举如下:
div.elements.each do |e|
p e
end
会做那样的事情:
<Watir::HTMLElement ... # <h1>Your product</h1>
<Watir::HTMLElement ... # <p>21598: DECLINE: Decline - Property Type not acceptable under this contract</p>
<Watir::HTMLElement ... #<div class="row">
如果要从DIV指定子元素P,请执行以下操作:
p = div.p
或
p = div.element( :tag_name => 'p' )
获取P:
的文字p.text # >> 21598: DECLINE: Decline - Property Type not acceptable under this contract
或者使用单个字符串执行事件:
b.div(:class => 'twelve columns').p.text
=> "21598: DECLINE: Decline - Property Type not acceptable under this contract"