尝试使用下面的代码点击链接。我在代码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))
我认为你需要一个不同的值在你的this.click();我相信你会需要这样的东西this.click('#main-navbar-collapse > ul > li > a');
其中一些可能需要根据你在其他地方的html进行更改,但这应该有助于指出你在正确的方向。