【发布时间】:2014-01-15 17:59:42
【问题描述】:
在我的应用程序的验收测试中,我需要根据列标题匹配表格单元格,同时考虑到标题和表格单元格上的 colspan 属性。我想编写一个自定义匹配器来执行此操作,但在我看来,XPath 并不适合这项工作。 (当然,也许可以在 XPath 中做这样的事情,但在我看来,这样一个怪物 XPath 表达式并不容易编写、阅读或维护。)
所以我想做的是编写一个不依赖于Capybara::Selector 中定义的xpath 或css DSL 方法的自定义Capybara 选择器。相反,我想为此使用纯 Ruby 代码,因为我相信 Ruby 比 XPath 更适合这个问题。我该怎么做呢? (例如,我可以创建自己的选择器对象并将其附加到 Capybara::Selector.all 或其他东西吗?)
(来自Capybara mailing list的交叉发布)
TL;DR:
如何定义我自己的 Capybara 匹配器而不限于使用 XPath 或 CSS? XPath 在大多数情况下都很好,但现在我需要更强大的东西。
【问题讨论】:
-
请举一个方法签名的例子。
-
@AndreyBotalov 什么方法签名? Capybara finder 方法的签名?我希望能够像任何其他 Capybara 选择器一样使用它:
page.all(:table_cell, "Column Header")
标签: capybara