1

有一些按钮共享相同的 id 或 casperjs 无法分类的类,我想点击第二个或 N 选择器匹配,我可以这样做:

document.querySelectorAll('[id="something"]').click();

但我必须使用以下基本格式:

casper.then(function (){
    this.click(id="something");
});

或者。无论如何我可以使以下陈述起作用吗?

var clickthis= '[id="something"]';
document.querySelectorAll(clickthis).click();

var clickthis 在 casper.click 中有效,但在 document.querySelector 中无效

谢谢!

4

2 回答 2

2

试试这个方法:

casper.evaluate(function(sel) {
    document.querySelectorAll(sel)[1].click();
}, '[id="something"]');
于 2017-09-21T05:40:56.093 回答
0

要单击第二个元素,您可以使用:

function click(sel,n){var event=document.createEvent('MouseEvents');
event.initMouseEvent('click',1,1,window,1,0,0,0,0,0,0,0,0,0,null);
document.querySelectorAll(sel)[n].dispatchEvent(event);}

var casper = require('casper').create();
casper.start('http://domu-test-2/',function(){
this.evaluate(function(click){
click('li.node-readmore a',1);// click on a second element of the array.
},click);
})
.wait(3000,function(){this.capture('test.png');})
.run();
于 2016-11-03T00:37:08.953 回答