带有水豚的黄瓜 xpath 失败

Cucumber with capybara failed xpath

为什么会出现此错误?

undefined method `map' for true:TrueClass
  Did you mean?  tap (NoMethodError)

浏览器签入成功。

这样做 xpath:

page.find(:xpath, './/td[contains(., "Total Income:")]/following-sibling::td[2]//text()="£ 0.00"')

我试图剖析它, 这样做没有问题:page.find(:xpath, './/td[contains(., "Total Income:")]')

似乎在使用 following-sibling

后开始出错

你得到它是因为你的 XPath 没有返回元素,而是 XPath

.//td[contains(., "Total Income:")]/following-sibling::td[2]//text()="£ 0.00"

returns 布尔值(text()="£ 0.00" 的结果)。目前还不清楚您要抓取哪个元素 - 但类似于

page.find(:xpath, './/td[contains(., "Total Income:")]/following-sibling::td[2]//*[text()="£ 0.00"'])

可能是您想要做的。

顺便问一下 - 你在 Capybara 上使用什么驱动程序?