casper.js/phantom.js未提交数据[英] Casper.js/Phantom.js not submitting data

问题描述

我正在使用casper.js自动提交表格.该表单的onsubmit方法返回false,并在发送数据之前运行一些JavaScript(OnClick Callback),因此我必须使用clickLabel,而不是fill.数据被预处理,我只需要单击"提交"按钮.当我使用Casper进行clickLabel('Submit')时,数据未提交.我在做什么错?

编辑 - 这是标签的标记:

<a class="green_btn white font_18 arrow_btn_pad rad_5" onclick="$.shactivity.eoiPremiumSubmit('expressval');return false;" href="javascript:void(0);">
<span class="fl cursor_p">Submit</span>
<span class="white_right_arrow mar_l_7 block fl mar_t_6 cursor_p"></span>
</a>

推荐答案

clickLabel在您的情况下使用//*[text()='Submit']的XPATH选择器调用click. click依次将尝试使用提交文本的span上的mousefown和click事件.但是,跨度没有任何此类事件处理程序,因为这是父链接的目的.上面的Xpath选择器不会选择跨度元素的父链接.

您需要单击实际链接以触发操作:

casper.click(".green_btn.white.font_18.arrow_btn_pad.rad_5");

或带有XPath表达式,根据文本选择父:

var x = require('casper').selectXPath;
casper.click(x("//*[text()='Submit']/.."));

本文地址:https://www.itbaoku.cn/post/1740205.html