【发布时间】:2017-05-31 16:45:35
【问题描述】:
我正在使用 CasperJS 测试我的前端,并创建了一个名为“Brand New Name”的新元素“foo”,并且已经存在“foo”元素。我需要使用 XPath 选择具有正确名称的特定元素,以便使用 Casper 测试它是否存在。
这就是我目前正在做的事情:
this.test.assertExists(x('//*[@class="foo" and text()="Brand New Name"]'), 'new thing exists')
但这不是找到我想要的,我做错了什么?
更新 1
这是我收到的 Casper.JS 失败消息,尽管 xPath 选择器看起来正确。
FAIL new category exists
# type: assertExists
# file: ../../../foo/test/casper/foo_manager/new_category.js
# subject: false
# selector: {"type":"xpath","path":"//*[@class=\"foo\" and contains(text(), \"Brand New Category\")]"
我意识到在我要选择的元素中实际上有一个span。我试图解释这一点,但我无法让xPath CasperJS 选择器工作。我已将xPath 选择器更新为contains,但它仍然无法正常工作。
选择器如下所示:
this.test.assertExists(x('//*[@class="foo" and contains(text(), "Brand New Category")]'), 'new category exists')
有问题的元素如下所示:
<a href='#' class='foo' id='foo-bar'>
Brand New Category
<span>some text</span>
</a>
【问题讨论】:
标签: javascript xpath casperjs