【问题标题】:Xpath checking the amount of text input fieldsXpath 检查文本输入字段的数量
【发布时间】:2011-01-27 10:48:37
【问题描述】:

我正在尝试在 Zend 框架中编写一个 phpUnit 测试。这一次,我想测试一下我的联系表单中有两个 text 类型的输入字段。

于是我写了这行代码:

 $this->assertQueryCount('form#contact-form/input[@type="text"]',2);

但它会返回:

1) IndexControllerTest::testCanDisplayContactForm 断言节点失败,由 form#contact-form/input[type="text"] 发生 2 次​​p>

所以我有一个 ID 为“联系人”表单的表单。在此,我想获取 text

类型的所有输入字段

有什么想法或技巧吗?

【问题讨论】:

  • 不应该是@type吗?它是一个属性。
  • 是的,我改变了它,但得到了同样的错误。

标签: zend-framework phpunit


【解决方案1】:

这个

表单#contact-form/input[type="text"]

更像是 jQuery 选择器语法,而不是 XPath。这是:

//form[@id = 'contact-form']/input[@type = 'text']

但是assertQueryCount() 函数实际上 期望的是一个 CSS 选择器:

form#contact-form 输入[type="text"]

【讨论】:

  • 我得到这个错误:1) IndexControllerTest::testCanDisplayContactForm DOMXPath::query(): Invalid expression
  • @sanders:表达式是有效的 XPath,这是肯定的。如果它不起作用,那么 assertQueryCount() 并不真正期望 XPath(快速查看 the docs 会发现:需要 CSS 选择器)。请参阅扩展答案。
  • @sanders:期望XPath表达式的方法是assertXpathCount
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-24
  • 2022-07-29
相关资源
最近更新 更多