使用casperjs的evaluate函数和jQuery单击一个元素
我正在尝试使用jQuery和casperjs来单击从DOM检索的元素。
casper.options.clientScripts = ["jquery-1.11.1.min.js"]; ... ... casper.then(function() { this.wait(2000,function() { this.evaluate(function() { var element = $('h4:contains("test")').prev().find('.delete'); $(element).css("background-color", "red"); $(element)[0].click(); }); }); )};
我用过
$(element).css("background-color", "red");
要查看jquery正在选择哪个元素,(我已经使用capture()来查看网页上发生了什么)并且它已经选择了正确的元素。 我已经在Firefox的firebug开发工具上尝试了我的代码,它运行正常,但我无法使用clickfunction。
你可以尝试多种方法。
-
使用jquery
click
element.click();
-
使用
onlick
element[0].onclick();
-
使用
onlick
电话element[0].onclick.call(element[0]);
-
使用带有
casper.click
XPath执行此操作的一部分var x = require('casper').selectXPath; this.evaluate(function(){ var $element = $('h4:contains("test")').prev().find('.delete'); $element.css("background-color", "red"); }); this.click(x("//h4[contains(.,'test')/preceeding-sibling::*[1]//*[contains(@class,'delete')]]"));