我正在编写一个cucumber测试,希望在其中获得元素中的HTML。
例如:
within 'table' do
# this works
find('//tr[2]//td[7]').text.should == "these are the comments"
# I want something like this (there is no "html" method)
find('//tr[2]//td[7]').html.should == "these are the <b>comments</b>"
end
有人知道怎么做吗?
发布于 2014-05-19 03:30:38
发布于 2011-06-07 09:33:13
这篇文章很旧了,但我想我找到了一个方法,如果你还需要这篇文章的话。
要从Capybara元素访问Nokogiri节点(使用Capybara 1.0.0beta1,Nokogiri 1.4.4),请尝试执行以下操作:
elem = find('//tr[2]//td[10]')
node = elem.native
#This will give you a Nokogiri XML element
node.children[1].attributes["href"].value.should == "these are the <b>comments</b>"
最后一部分可能对您有所不同,但您应该能够在该节点变量中的某处找到HTML
发布于 2013-03-16 02:11:04
在我的环境中,find返回一个Capybara::Element,它响应Eric Hu上面提到的:native方法,它返回Selenium::WebDriver::Element (对我来说)。然后:text获取内容,所以它可以像下面这样简单:
results = find(:xpath, "//td[@id='#{cell_id}']")
contents = results.native.text
如果您正在查找表格单元格的内容。Capybara::元素上没有content、inner_html、inner_text或node方法。假设人们不是在胡编乱造,也许你会从find中得到一些不同的东西,这取决于你在Capybara中加载的其他东西。
https://stackoverflow.com/questions/4071937
复制相似问题