我试图点击一个按钮,因为它是以id" submitButton _"开头的。鉴于之后的内容会不断变化(例如" submitButton_10a313c673cee")。这就是按钮的样子:
app.nocache.js
使用以下代码,我可以点击按钮:
<a href="#" class="btn btn-default" role="button" id="submitButton_10a313c673cee">Continue</a>
因此,从其他问题(例如jquery selector for id starts with specific text)我想我可以点击它:
tell application "Safari"
do JavaScript "$(id='submitButton_10a313c673cee').click();" in document 1
end tell
然而,这不起作用。我也尝试了多种排列,但所有这些排列都没有用,例如:
do JavaScript "$(id^='submitButton_').click();" in document 1
任何帮助都将受到高度赞赏。
答案 0 :(得分:0)
如果我理解正确,你可以像下面这样做
$("[id^=submitButton_]").trigger('click');
答案 1 :(得分:0)
编辑 - 基于有关引号和使用Apple脚本的评论...
试试这个:
do JavaScript "$(\"[id^='submitButton_']\").click();" in document 1
答案 2 :(得分:0)
我不是JavaScript程序员,但不时使用一些JavaScript,例如:
do JavaScript "document.getElementsByClassName('btn btn-default')[n].click();"
n
中的[n].click()
设置为索引编号,在各种网页上点击class name
按钮。
以下示例 AppleScript 代码是我用来获取n
的值的内容在[n].click()
:
根据需要设置两个变量,并将剩余的代码标记化。
在您的情况下,例如:
set theClassName to "btn btn-default"
set theText to "Continue"
tell application "Safari"
tell document 1 of front window
set theCount to (do JavaScript "document.getElementsByClassName('" & theClassName & "').length;") - 1 as integer
repeat with i from 0 to theCount
set innerText to do JavaScript "document.getElementsByClassName('" & theClassName & "')[" & i & "].innerText;"
if innerText is theText then
do JavaScript "document.getElementsByClassName('" & theClassName & "')[" & i & "].click();"
exit repeat
end if
end repeat
end tell
end tell
我在一个页面上运行了上面的脚本编辑器,该页面包含许多元素,其中btn btn-default
类名,其中一个Continue
为它的内部文本。最后一件事是:
do JavaScript "document.getElementsByClassName('btn btn-default')[2].click();"
因此,如果你这样做,你应该能够找到正确的索引号并用它来点击按钮。
请注意,虽然示例 AppleScript 代码可以用作普通的代码,但它只是意味着获取索引号并看到它实际上单击了按钮,因此您可以在实际的脚本中使用代码的单行。