如何使用CasperJS检测选择器中的部分文本

问题描述 投票:0回答:1

我正在使用CasperJS进行功能测试,我想检查页面中是否显示错误消息。

我在用:

test.assertSelectorHasText('#iccid-error', 'CC-ICCID-01');

这工作正常但只有我使用整个文本(不是它的一部分)。

javascript casperjs
1个回答
0
投票

根据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()确实在匹配给定的选择器的元素中搜索部分字符串。

© www.soinside.com 2019 - 2024. All rights reserved.