我正在尝试通过我的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事件的任何建议吗?
答案 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事件。