使用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。

你可以尝试多种方法。

  1. 使用jquery click

     element.click(); 
  2. 使用onlick

     element[0].onclick(); 
  3. 使用onlick电话

     element[0].onclick.call(element[0]); 
  4. 使用带有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')]]"));