capybara如何在html或多行文本中找到结果?

时间:2016-05-05 19:18:37

标签: ruby capybara capybara-webkit

有一个HTML代码

<p>
test text
<br/>
test2
<p/>

执行方法时:

.find(:xpath, "/html/p").text

结果:

test text test2

如何获得“两行”

test text
test2

1 个答案:

答案 0 :(得分:1)

Capybara尝试在有意义的情况下遵循webdriver规范,这意味着#text返回规范化的文本内容,并删除了回车符/换行符,因此无法满足您的需求。

不幸的是,当通过#[]访问时,capybara-webkit不会返回元素属性,所以这不适用于capybara-webkit - 它应该与selenium或poltergeist一起使用

但是,由于您使用的是其中一个真正的浏览器驱动程序(而非机架测试),您应该可以通过执行

来访问元素innerText属性
find(:xpath, "/html/p")['innerText']

应提供您正在寻找的输出