水豚无法匹配 xml 页面
Capybara can not match xml page
我无法匹配水豚 xml 页面上的响应文本。
当我使用 page.should(have_content(arg1))
时,水豚会报错,指出没有 \html
元素(不应该有,因为它是 xml)。
当我使用 page.should(have_xpath(arg1))
时它会引发 Element at 40 no longer present in the DOM (Capybara::Webkit::NodeNotAttachedError)
正确的测试方法是什么xml?
当使用 capybara-webkit 时,驱动程序将尝试使用浏览器的 HTML DOM 来查找元素。那行不通,因为您没有 HTML 文档。
一种解决方法是回退到 Capybara 的 string
实现:
xml = Capybara.string(page.body)
expect(xml).to have_xpath(arg1)
expect(xml).to have_content(arg1)
假设您的页面 returns 的内容类型为 text/xml
,capybara-webkit 根本不会弄乱响应主体,因此您可以将其传递给 Capybara.string
(或者如果你愿意,直接到 Nokogiri)。
我无法匹配水豚 xml 页面上的响应文本。
当我使用 page.should(have_content(arg1))
时,水豚会报错,指出没有 \html
元素(不应该有,因为它是 xml)。
当我使用 page.should(have_xpath(arg1))
时它会引发 Element at 40 no longer present in the DOM (Capybara::Webkit::NodeNotAttachedError)
正确的测试方法是什么xml?
当使用 capybara-webkit 时,驱动程序将尝试使用浏览器的 HTML DOM 来查找元素。那行不通,因为您没有 HTML 文档。
一种解决方法是回退到 Capybara 的 string
实现:
xml = Capybara.string(page.body)
expect(xml).to have_xpath(arg1)
expect(xml).to have_content(arg1)
假设您的页面 returns 的内容类型为 text/xml
,capybara-webkit 根本不会弄乱响应主体,因此您可以将其传递给 Capybara.string
(或者如果你愿意,直接到 Nokogiri)。