我有一个带有嵌入式Javascript的AppleScript,可以在Safari上正常工作,但不适用于Chrome。
Safari版本(删除了非相关部分):
tell application "Safari"
activate
do JavaScript "document.getElementsByName('files[]')[0].click();" in document 1
end tell
Chrome版本:
tell application "Google Chrome"
activate
tell window 1 to tell tab 1
execute javascript "document.getElementsByName('files[]')[0].click();"
end tell
Chrome版本返回"缺少值"在Apple ScriptEditor中。
我可以使用其他javascript命令工作,我可以
document.getElementsByName('files[]')[0].click();
或
document.getElementsByName("files[]")[0].click();"
在适当的网页上的Chrome控制台中的(认为它可能与双引号有关 - 我猜想仍然可能)。
以下是有问题的元素:
<h3>Add new documents for this patient
<!-- The fileinput-button span is used to style the file input field as button -->
<span class="btn fileinput-button" style="float: right !important;">
<span>Select Files to Upload</span>
<input type="file" name="files[]" multiple="">
</span>
</h3>
有什么想法吗?我已经尝试了很多迭代。
document.getElementsByClassName('btn fileinput-button')[0].children[1].click();
在控制台中工作,但在AppleScript中则不行。看起来像AppleScript对我来说很奇怪,但是......
添加信息:
我可以点击&#34;点击&#34;在登录页面上,所以它不是一个网站范围的问题...
tell window 1 to tell tab 1
execute javascript "document.getElementById('username').value='someLoser';"
execute javascript "document.getElementById('password').value='YouWish'"
execute javascript "document.getElementsByClassName('btn btn-md btn-primary')[0].click();"
end tell
可以很好地嵌入AppleScript中。
感谢。
答案 0 :(得分:0)
我认为这与阻止浏览器远程执行click事件的安全问题有关。在我设置的快速测试中,我能够从控制台执行jQuery和vanilla的单击,但我无法从AppleScript执行该操作。我没有错误,也没有任何错误。
我在其他问题中发现了多个类似的情景: