CasperJS遇到click()没有找到元素的麻烦

时间:2016-07-14 05:04:26

标签: casperjs

刚进入CasperJS,我遇到了一种奇怪的行为。这是我脚本的一部分。它会查找如下所示的链接:

<a id="logout" href="...">xxx</a>

我有一个独特的标签来帮助找到它。 test.assertExists()有效,但this.click()没有。这很令人费解,因为他们有相同的选择器。

casper.test.begin('Initial login & logout testing', 2, function suite(test) {
    casper.start(startUrl);

    casper.then(function() {
    this.waitForSelector('li a#logout', function() {
        test.assertExists('a#logout', "logout button is found");
        this.click('a#logout');
        });
    });
    casper.run(function() {
        test.done();
    });
});

输出:

PASS logout button is found
[debug] [phantom] Mouse event 'mousedown' on selector: a#logout
[error] [remote] mouseEvent(): Couldn't find any element matching 'a#logout' selector

我期待一致的行为。有线索吗? 谢谢!

[更新]我有一个解决方法。我替换this.click('a#logout');以下内容:

        this.evaluate(function() {
            document.querySelector('a#logout').click();
        });

它可以解决问题。我现在使用它,虽然我希望我知道为什么它没有按照预期的方式工作。

0 个答案:

没有答案