我有一个小型刮板,我需要使用JavaScript单击一个锚点链接。我尝试了几种方法:jQuery.click()
,document.createEvent('MouseEvents')
等等。它们都有效,但是它们并不像人类点击那样完全执行(它们像打开标签一样打开标签,但不会开始下载)。在JavaScript中模拟人类点击
锚标记有这个属性:
onclick="if (document.getElementById('ReportViewer_ctl01_ctl05_ctl00').selectedIndex == 0) return false;
if (!ClientToolbarReportViewer_ctl01.HandleClientSideExport()) __doPostBack('ReportViewer$ctl01$ctl05$ctl01','');return false;"
我也试着运行这个关键,在命令行:
__doPostBack('ReportViewer$ctl01$ctl05$ctl01','')
这也是这类作品,但并不完全像人类点击。
如果需要,我可以进入更多细节,但目前我正在寻找一个我认为应该存在的魔法子弹。
为什么不用'PHP cURL'访问所需的uri(如果你使用PHP作为服务器端语言)? – yoda
我认为这种差异性有一个有意识的基于安全性的原因;它似乎是为了防止驱动器下载/ EULA接受等等。虽然我可以很可恶,*可恶*错误。 –
@yoda谢谢,不使用PHP,它是一个杂乱无章的杂凑。该链接实际上提交了一个表单来模拟下载。 –