【发布时间】:2015-03-30 16:32:14
【问题描述】:
我正在一个带有搜索框的网页上使用 CasperJS。使用 Casper,我能够成功地执行搜索并看到表单已填写并执行搜索,但是我无法专门获取结果数量来测试它是否有效。
当我查看网页的源代码时,我有元素的 XPath,它嵌套在几个 div 中。
但是当我尝试在该路径上执行assertExists(),甚至将getElementByXPath() 的结果返回给一个变量时,它都不起作用。在第一种情况下测试失败,在第二种情况下它打印null。
这是 XPath:
//*[@id="total"]
source 的 sn-p 如下所示:
<div id="pgContent"><div id="results_pagination1_container">
<span style="float: right; font-size: .9em">
Found <span id="total">721</span> item(s)</span>
</div>
这是 CasperJS 代码,与此处相关。
casper.test.begin(
'Testing that we get the right amount of results for a search query',
2, function suite(test) {
casper.start(catapult, function() {
test.assertTitle("Search", "Search"); // Good
test.assertExists('#input-searchbox'); // Good
this.fillSelectors('form#inputForm', {
'input[name="queryStr"]' : 'airplane'
}, true);
//this.click('input#btnSearch');
});
casper.then(function() {
var resultsNum = __utils__.getElementByXPath('//*[@id="total"]');
this.echo(resultsNum);
test.assertExists('//*[@id="total"]');
});
【问题讨论】:
-
请定义“不起作用”并显示您当前的代码。
-
已添加评论。不起作用,因为它在第三次测试中不断失败,并且 resultsNum 生成 null 而不是该 xPath 标记处的元素。
标签: javascript html testing xpath casperjs