Phantomjs casperjs单击第二个匹配选择器

Phantomjs casperjs单击第二个匹配选择器,phantomjs,casperjs,slimerjs,Phantomjs,Casperjs,Slimerjs,有一些按钮共享casperjs无法分类的相同id或类,我想单击第二个或N选择器匹配,我可以使用: document.querySelectorAll('[id="something"]').click(); 但我必须使用以下基本格式: casper.then(function (){ this.click(id="something"); }); 或者。不管怎样,我是否可以让下面的陈述起作用 var clickthis= '[id="something"]'; document.qu

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

document.querySelectorAll('[id="something"]').click();
但我必须使用以下基本格式:

casper.then(function (){
    this.click(id="something");
});
或者。不管怎样,我是否可以让下面的陈述起作用

var clickthis= '[id="something"]';
document.querySelectorAll(clickthis).click();
变量clickthis在casper中工作。单击, 但无法在document.querySelector中工作


谢谢

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

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();
试着这样做:

casper.evaluate(function(sel) {
    document.querySelectorAll(sel)[1].click();
}, '[id="something"]');