我正在使用CasperJS进行功能测试,我想检查页面中是否显示错误消息。
我在用:
test.assertSelectorHasText('#iccid-error', 'CC-ICCID-01');
这工作正常但只有我使用整个文本(不是它的一部分)。
根据documentation,CasperJS函数assertSelectorHasText()
:
断言给定文本存在于与提供的selector expression匹配的元素中。
换句话说,此函数将适用于完整和部分字符串,如果字符串存在于元素中,则测试将通过。
我运行了一个简单的测试来验证函数的准确性。
命令行:
casperjs casperjs.js
结果:
# How to Detect Partial Text within a Selector using CasperJS
PASS Find "CC" within the selector "#iccid-error"
PASS Find "CC-ICCID" within the selector "#iccid-error"
PASS Find "CC-ICCID-01" within the selector "#iccid-error"
PASS How to Detect Partial Text within a Selector using CasperJS (3 tests)
casperjs.js:
phantom.casperTest = true;
var casper = require('casper').create();
casper.test.begin('How to Detect Partial Text within a Selector using CasperJS', 3, function (test) {
casper.start('https://example.com/test.php', function () {
test.assertSelectorHasText('#iccid-error', 'CC');
test.assertSelectorHasText('#iccid-error', 'CC-ICCID');
test.assertSelectorHasText('#iccid-error', 'CC-ICCID-01');
}).run(function () {
test.done();
});
});
casper.on('run.complete', function () {
this.exit();
});
example.com/test.PHP:
<!DOCTYPE html>
<html>
<body>
<div id="iccid-error">CC-ICCID-01</div>
</body>
</html>
因此,我可以得出结论,函数assertSelectorHasText()
确实在匹配给定的选择器的元素中搜索部分字符串。