发送没有id的元素的onclick事件

时间:2017-08-23 23:07:14

标签: javascript jquery html swift3

我正在尝试通过我的Swift3应用程序自动执行第2行中缺少“id”的HTML元素。

包含所需元素(第2行)的网站的HTML部分

<div id="actionButtons" style>
    <input class="pptbutton" onclick="return addSimResults();" title="SimulateRace" type="submit" value="Simulate">
    <a href="javascript:void(0)" onclick="clearAllInputs();" style="font-size:0.8em" title="Clear all inputs">Clear All</a> = $0
    <div class="holder" style="font-size:0.8em;">
        <input class="pttbutton" id="graphButton" onclick="return addGraphResults();" style title="Graph your simulation" type="submit" value="Graph HvH">
...etc

我使用Swift代码

成功自动化了line5的element.onclick事件
webView.evaluateJavaScript("document.getElementById('graphButton').click();")

我试图使用Swift代码

按类名抓取元素
webView.evaluateJavaScript("document.getElementsByClassName('pptbutton')[0];") {
                (result, error) -> Void in
                print(result)
            }

返回nil。我也试过没有“[0]”。

有关如何导致line2的元素onclick事件的任何建议吗?

1 个答案:

答案 0 :(得分:0)

[Sun Sep 17 23:38:45 2017] [alert] [client 184.22.122.56] /var/www/vhosts/domain.com/sub.domain.com/.htaccess: RewriteRule: bad flag delimiters, referer: http://sub.domain.com/

[Sun Sep 17 23:42:18 2017] [error] [client 184.22.122.56] Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.

这行代码评估定义为给定字符串的javascript。 String是纯Javascript,它使用css类pptbutton选择dom中的第一个元素。

您忘记在此元素上调用click方法,因此代码不会触发任何点击。

应该是:

webView.evaluateJavaScript("document.getElementsByClassName('pptbutton')[0];")

通过这种方式,可以在所选元素上触发click事件。