AutoIt 在 IE 中单击没有名称或 ID 的 onClick Javascript 按钮 class

AutoIt Clicking a onClick Javascript button with no name or id only class in IE

尝试编写一个按钮,点击亚马逊网站上的按钮,如下所示:

  <span class="action-go" onclick="MYO.JS.handle_action($(this).parent().find('.action option:selected').attr('value'),&#10;     $(this).parent().find('.action option:selected').attr('url'));">
          <input width="21" height="21" align="absmiddle" type="image" src="https://images-na.ssl-images-amazon.com/images/G/01/abis-ui/buttons/go._V187564664_.gif" border="0">
        </span>

<input width="21" height="21" align="absmiddle" type="image" src="https://images-na.ssl-images-amazon.com/images/G/01/abis-ui/buttons/go._V187564664_.gif" border="0">

这是我试过的:

Func GetButtons()
    Local $oBtns = _IETagNameGetCollection($g_oIE, "span")
    For $oBtn In $oBtns
        If String($oBtn.classname) = "action-go" Then
            _IEAction($oBtn, "click")
        EndIf
        ExitLoop
Next
EndFunc

有效的解决方案

Func ClickButton()
$HWND = _IEPropertyGet($g_oIE, 'HWnd')
WinSetState($HWND, "", @SW_MAXIMIZE)
_IEAction($g_oIE,"visible")
_IELoadWait($g_oIE)
MouseClick($MOUSE_CLICK_LEFT, 290, 354, 2)
EndFunc   ;==>GetButtons

我没有时间给你写一个解决方案,但我可以告诉你我会怎么做。诀窍是不要点击按钮,而是点击它的位置。 这仅在 GUI 始终具有相同的比例时才有效。

  1. 您检测到 window 的位置。只要它有一个名字,它就可以工作。
  2. 您通过使用 AutoIt Window 信息检测按钮相对于 window 的位置。
  3. 您添加两个值并单击该位置。

您可以使用MouseClick点击一个位置。