使用casperjs评估函数和jQuery单击元素

时间:2014-07-21 20:35:18

标签: jquery casperjs evaluate

我正在尝试使用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开发工具上尝试了我的代码,它工作正常,但我无法使点击功能完全正常工作。

1 个答案:

答案 0 :(得分:0)

你可以尝试多种方法。

  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')]]"));