Casper:获取错误无法在不存在的选择器上调度mousedown事件

时间:2015-07-30 09:21:42

标签: javascript casperjs

尝试使用以下代码点击链接。我在收到错误 代码this.click('/login')帮助我解决此问题,以便能够点击此链接 我很震惊。

我得到的输出为:

FAIL Cannot dispatch mousedown event on nonexistent selector: /login
#    type: uncaughtError
#    file: loki1.js:1355

这是我的代码:

casper.test.begin('Signin to loki',1,function(test){


     casper.start('http://localhost:3000');

     casper.evaluate(function() {
       __utils__.echo("Hello World!");
  });

casper.wait(100,function(){
    casper.echo("Debuging");
    casper.echo("this:"+this);
    casper.echo("Done");



    if (this.exists('headerwrap')) {

    casper.echo('the heading exists');
}
this.click('/login');  ////This is not working

    this.fill('#loginForm', {
        'login' : 'Divya',
        'password' : '********'

}, false);

这是html

我应该使用哪个选择器点击href=/login

<div class="navbar-collapse collapse" id="main-navbar-collapse">
    <ul class="nav navbar-nav navbar-right">
        <li>
             <a href="/login" data-toggle="tooltip" data-placement="bottom" data-original-title="Login">Sign In</a>
        </li>
    </ul>
</div>

1 个答案:

答案 0 :(得分:0)

我相信有多种方法可以做到这一点。您可以使用jQuery单击它,您可以获取href,然后使用该href打开页面,或者您需要更改单击内的值。

jQuery .click()和.prop()

要点击jQuery,您可以执行以下操作:

casper.evaluate(function(){
     jQuery('.nav.navbar-nav.navbar-right li a').click()
});

您也可以从html中获取href:

var link = casper.evaluate(function(){
    return jQuery('.nav.navbar-nav.navbar-right li a').prop('href');
});

这将返回'/ login'并且您可以执行casper.thenOpen((your url)+link))

casper.click()

我认为你在this.click()中需要一个不同的值;我相信你需要这样的东西this.click('#main-navbar-collapse > ul > li > a');其中一些可能需要根据你在其他地方的html进行更改,但这应该有助于指明你正确的方向。