即使元素存在,CasperJS单击也会导致错误

时间:2015-08-10 16:18:46

标签: javascript css-selectors click casperjs

我正在尝试点击我从当前页面检索到的注销按钮。我成功获得了注销链接的id。但是当我点击它时,会发生错误

  

无法在不存在的选择器

上调度mousedown事件
function getLogoutId()
{
    var logoutid = "";
    $(document).find("a").each(function(key,value){

        var id = $(this).attr("id");

        if(id.toLowerCase().indexOf("logout") > -1)
        {
            __utils__.echo("insidelogout" + id);
            logoutid = id;
        }
    });

    return logoutid;
}


var logoutid = this.evaluate(getLogoutId);
fs.write("logout.txt", this.getHTML(), 'w');
this.thenClick("#"+logoutid, function(){});

我已将html内容写入文件,我在其中检查了id并且它就在那里。有问题的id属性如下所示:

et-ef-content-ftf-flowHeader-logoutAction

2 个答案:

答案 0 :(得分:0)

您是否尝试过只使用teamocil rubysession ? 还有你考虑使用jQuery点击按钮?像这样......(首先创建你的id的变量,这样你就可以传入jQuery)。

this.click("#"+logoutid);

答案 1 :(得分:0)

除了奇怪的jQuery使用外,我认为你的代码没有任何问题。

您可以尝试其他CSS选择器点击:

casper.thenClick("[id*='logout']"); // anywhere

casper.thenClick("[id$='logoutAction']"); // ending

casper.thenClick("[id|='logoutAction']"); // dash-separated

可能是显示代码后面的代码存在问题。您可以尝试将thenClick更改为click