Casper:无法在不存在的选择器上调度鼠标下移事件



尝试使用下面的代码点击链接。我在代码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

我应该使用什么选择器来点击a 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>

我相信有多种方法可以做到这一点。你可以使用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进行更改,但这应该有助于指出你在正确的方向。

最新更新