将某些事件发送到phantomjs中的网站

时间:2015-09-01 09:33:55

标签: javascript phantomjs

我想模拟网站上元素的点击。该网站包含一个列表,每个元素都是可扩展的。我要点击的元素会导致列表的条目展开,因此它就像“显示详细信息”按钮。

首先,这是定义按钮的html代码:

<td>
   <span id="span_details62_0">
     <a href="#" onclick="setBusy(&#x27;running-indication&#x27;);
            render_event_cluster(&#x27;104,105&#x27;, 620);
            toggle_fe(&#x27;dtlsRow620&#x27;);
            change(&#x27;span_details62_0&#x27;, &#x27;show&#x27;);
            Element.update(&#x27;running-indication&#x27;,&#x27;&#x27;);; return false;"><img alt="show | hide" border="0" height="10" src="/images/layout/general/clear.gif?1408570117" title="Show/hide details" width="10" /></a>
   </span>
</td>

是否可以发送命令

        render_event_cluster(&#x27;104,105&#x27;, 620);
        toggle_fe(&#x27;dtlsRow620&#x27;);
        change(&#x27;span_details62_0&#x27;, &#x27;show&#x27;);

直接到网站,从而让它认为按钮已被点击并显示结果?

2 个答案:

答案 0 :(得分:0)

是的,您当然可以使用page.evaluate()。您需要首先“解码”(&#x27;'的HTML实体)JavaScript:

page.evaluate(function(){
    setBusy('running-indication');
    render_event_cluster('104,105', 620);
    toggle_fe('dtlsRow620');
    change('span_details62_0', 'show');
    Element.update('running-indication','');
});

答案 1 :(得分:0)

click method应该适合你:

var a = document.getElementById('span_details62_0').getElementsByTagName('a')[0];
a.click();