【发布时间】:2018-03-14 16:05:51
【问题描述】:
我正在使用 CasperJS 进行功能测试,我想检查页面中是否显示错误消息。
我正在使用:
test.assertSelectorHasText('#iccid-error', 'CC-ICCID-01');
这很好,但前提是我使用整个文本(不是其中的一部分)。
【问题讨论】:
标签: javascript casperjs
我正在使用 CasperJS 进行功能测试,我想检查页面中是否显示错误消息。
我正在使用:
test.assertSelectorHasText('#iccid-error', 'CC-ICCID-01');
这很好,但前提是我使用整个文本(不是其中的一部分)。
【问题讨论】:
标签: javascript casperjs
根据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() 实际上会在与给定选择器匹配的元素中搜索部分字符串。
【讨论】: