0

这个代码语句(在 casperjs 文档中给出)究竟是做什么的?

return /message sent/.test(document.body.innerText);

相同的文档并没有解释太多。因此,麻烦。

fill()我正在尝试使用 casperjs方法检查我是否已成功登录网站。

如果重要的话,这是我的脚本:

var casper = require('casper').create();

casper.start('http://example.com', function() {
    this.fill('form[action="login.php"]', {
        'username': 'myname',
        'password': 'mypass'
    }, true);
});

casper.then(function() {
    this.evaluateOrDie(function() {
        return /message sent/.test(document.body.innerText);
    }, 'sending message failed');
});

casper.run(function() {
    this.echo('message sent').exit();
});

我需要帮助casper.then()casper.run()检查我的登录尝试。我对javascript和casperjs都很陌生,所以如果这是一个非常基本的问题,请原谅我。

4

1 回答 1

3

这不是 CasperJS 功能,而是 Javascript 功能。

这样做是测试字符串 ( document.body.innerText) 是否匹配正则表达式 ( /message sent/)

message sent在这种情况下,如果在远程页面的正文中找不到 CasperJS,它将退出。

您可能还想尝试使用以下内容,因为它将确保页面在继续之前有时间加载。

casper.then(function() {
    this.waitForText("message sent", function then() {
        this.echo('message sent');
    }, function timeout() {
        this.die('sending message failed');
    });
});
于 2013-10-14T21:31:30.743 回答