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

Javascript 如何使用CasperJS检测选择器中的部分文本,javascript,casperjs,Javascript,Casperjs,我正在使用CasperJS进行功能测试,我想检查页面中是否显示错误消息 我正在使用: test.assertSelectorHasText('#iccid-error', 'CC-ICCID-01'); casperjs casperjs.js # How to Detect Partial Text within a Selector using CasperJS PASS Find "CC" within the selector "#iccid-error" PASS Find "CC

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

我正在使用:

test.assertSelectorHasText('#iccid-error', 'CC-ICCID-01');
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)
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();
});
<!DOCTYPE html>
<html>
<body>
  <div id="iccid-error">CC-ICCID-01</div>
</body>
</html>
这很好,但前提是我使用整个文本(而不是其中的一部分)。

根据,CasperJS函数
assertSelectorHasText()

断言给定文本存在于与所提供文本匹配的元素中

换句话说,此函数将适用于完整字符串和部分字符串,如果该字符串存在于元素中,则测试将通过

我运行了一个简单的测试来验证函数的准确性

命令行:

test.assertSelectorHasText('#iccid-error', 'CC-ICCID-01');
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)
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();
});
<!DOCTYPE html>
<html>
<body>
  <div id="iccid-error">CC-ICCID-01</div>
</body>
</html>
结果:

test.assertSelectorHasText('#iccid-error', 'CC-ICCID-01');
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)
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();
});
<!DOCTYPE html>
<html>
<body>
  <div id="iccid-error">CC-ICCID-01</div>
</body>
</html>
casperjs.js:

test.assertSelectorHasText('#iccid-error', 'CC-ICCID-01');
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)
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();
});
<!DOCTYPE html>
<html>
<body>
  <div id="iccid-error">CC-ICCID-01</div>
</body>
</html>
example.com/test.php:

test.assertSelectorHasText('#iccid-error', 'CC-ICCID-01');
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)
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();
});
<!DOCTYPE html>
<html>
<body>
  <div id="iccid-error">CC-ICCID-01</div>
</body>
</html>

CC-ICCID-01

因此,我可以得出结论,函数
assertSelectorHasText()
实际上在元素中搜索与给定选择器匹配的部分字符串