使用Applescript单击网页上的复选框

时间:2013-11-16 19:10:23

标签: checkbox applescript

我对Applescript有些新意,我试图让Applescript选中一个复选框来选择它。我想要点击复选框,无论它是否已被选中。以下是根据辅助功能检查器的复选框位置:

<AXApplication: “Safari”>
<AXWindow: “Studio”>
<AXGroup>
<AXGroup>
<AXGroup>
 <AXScrollArea: “”>
  <AXWebArea: “”>
   <AXGroup: “”>
    <AXCheckBox: “”>

Attributes:
AXRole:  “AXCheckBox”
AXSubrole:  “(null)”
AXRoleDescription:  “check box”
AXChildren:  “<array of size 0>”
AXHelp:  “”
AXParent:  “<AXGroup: “”>”
AXPosition:  “x=1104 y=825”
AXSize:  “w=18 h=19”
AXTitle:  “”
AXDescription:  “”
AXValue:  “0”
AXFocused (W):  “0”
AXEnabled:  “1”
AXWindow:  “<AXWindow: “Studio”>”
AXSelectedTextMarkerRange (W):  “<AXTextMarkerRange 0x101937860 [0x7fff76e43fa0]>{startMarker:<AXTextMarker 0x1019378b0 [0x7fff76e43fa0]>{length = 24, bytes = 0xac01000000000000c0366e23010000001700000001000000} endMarker:<AXTextMarker 0x101938030 [0x7fff76e43fa0]>{length = 24, bytes = 0xac01000000000000c0366e23010000001700000001000000}}”
AXStartTextMarker:  “<AXTextMarker 0x101938030 [0x7fff76e43fa0]>{length = 24, bytes = 0xa00000000000000098975e0d010000000000000001000000}”
AXEndTextMarker:  “<AXTextMarker 0x1019378b0 [0x7fff76e43fa0]>{length = 24, bytes = 0xa200000000000000405e7812010000000000000001000000}”
AXVisited:  “0”
AXLinkedUIElements:  “(null)”
AXSelected:  “0”
AXBlockQuoteLevel:  “0”
AXTopLevelUIElement:  “<AXWindow: “Studio”>”
AXTitleUIElement:  “(null)”
AXAccessKey:  “(null)”
AXRequired:  “0”
AXInvalid:  “false”
AXARIABusy:  “0”

Actions:
AXPress - press
AXShowMenu - show menu

我已经尝试了多种方法来实现这一点,但我无法做到。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

我担心无障碍检查员信息的问题不是很有帮助。

如果我们能够看到网页的实际元素,那将会有所帮助

查看this page,我发现它显示了复选框和构成它的代码。

每个元素都有一个名称,也许还有其他元素。

页面上的

我可以使用此Applescript / Javascript来检查 check1 复选框。

希望这会让你知道如何去做。

但请记住,此代码段是针对此页面量身定制的。

打开网页并运行此AppleScript

tell application "Safari"

set doc to document 1


    do JavaScript "document.forms['testform']['check1'].checked = true" in doc
end tell

更新: Applescript GUI


更新:2 考虑“无论是否已经检查过点击”


与您的辅助功能检查员齐头并进。这有点无用(不是你的错)

尝试:

   activate application "Safari"
tell application "System Events"
    set theCheckbox to (checkbox 1 of group 3 of UI element 1 of scroll area 1 of group 1 of group 1 of group 2 of window 1 of application process "Safari")

    set isEnabled to value of theCheckbox as boolean
    if not isEnabled then
        click theCheckbox   
    end if
end tell