尝试使用以下代码点击链接。我在收到错误
代码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>
答案 0 :(得分:0)
我相信有多种方法可以做到这一点。您可以使用jQuery单击它,您可以获取href,然后使用该href打开页面,或者您需要更改单击内的值。
要点击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))
我认为你在this.click()中需要一个不同的值;我相信你需要这样的东西this.click('#main-navbar-collapse > ul > li > a');
其中一些可能需要根据你在其他地方的html进行更改,但这应该有助于指明你正确的方向。