2016-02-09 7 views
1

Использование FireFox плагин ("ФФ-au3") для AutoIt, как я нажимаю кнопку?AutoIt Firefox _FFClick не работает на кнопке? (FF.au3)

Вот HTML элемента я хотел нажать:

<input accesskey="s" class="aui-button" id="login-form-submit" name="login" title="Press Alt+s to submit this form" type="submit" value="Log In"> 

А вот фрагмент кода нажать кнопку:

;Click the "Log In" button, id is "login-form-submit" 
    _FFClick("login-form-submit", "id") 

На данный момент, мой сценарий уже подключен к firefox, уже на странице, в которой я нуждаюсь, и все остальное работает (за исключением этой части щелчка!)

Вот ошибка, которую я возвращаю:

_FFClick ==> No match: $sElement: FFau3.WCD.getElementById('login-form-submit') 

Кроме того, это работает, когда я вручную запустить его на странице с помощью консоли JavaScript:

document.getElementById("login-form-submit") 

А вот API для плагина: http://english.documentation.ff-au3.thorsten-willert.de/ff_functions/_FFClick.php

Кто-нибудь видел что-нибудь я делать не так?

Версии:

  • Firefox 44.0.1
  • AutoIt v3.3.14.2
  • FF V0.6.0.1b-15.au3 (Firefox плагин)
  • MozRepl v.1.1. 2
  • SciTE-Lite v. 3.5.4

ответ

2

Ну это не получить много трафика, но я нашел решение! Довольно просто ... Я отключился от firefox перед тем, как выполнить щелчок!

При использовании firefox вам сначала нужно открыть firefox exe командой «Запустить», затем вам нужно подключиться к firefox с помощью команды «_FFConnect». Затем вы можете щелкнуть элементы. Как только вы закончите, отключите firefox, используя команду «ProcessClose». Проблема, с которой я столкнулся, заключалась в подключении к firefox, затем отключении сразу, затем я попытался щелкнуть. Таким образом, я уверен, что я отключен после я щелканье ...

Рабочий раствор: myScript.au3 (См функцию «Войти» в нижней части)

#include <Constants.au3> 
#include <MsgBoxConstants.au3> 
#include <File.au3> 
#include <EventLog.au3> 
#include <FF V0.6.0.1b-15.au3> ;FireFox 

OpenLog() 
OpenFirefox() 
ConnectToFirefox() 
LogIn() 

; //////////////////////////////////////////////////// 
; Configure the Log 
; //////////////////////////////////////////////////// 
Func OpenLog() 

    Global $log = FileOpen("K:\Log.txt", 2) 

    ; Check if file opened for reading OK 
    If $log == -1 Then 
     FileWrite($log,"[ERROR] Could not open log file." & @CRLF) 
     MsgBox(0, "Error", "Unable to open log file.", [ timeout = 0]) 
     Exit 
    Else 
     FileWrite($log,"[INFO] Opened log file successfully." & @CRLF) 
    EndIf 

EndFunc 

; //////////////////////////////////////////////////// 
; Open Firefox 
; //////////////////////////////////////////////////// 
Func OpenFirefox() 
    ;Run Firefox in Maximized 
    Global $ffPid = Run("C:\Program Files (x86)\Mozilla Firefox\firefox.exe","",@SW_MAXIMIZE) 

    ; Check if firefox was opened OK 
    If @error <> 0 Then 
     FileWrite($log,"[ERROR] Could not open firefox." & @CRLF) 
     MsgBox(0, "Error", "Could not open firefox.", [ timeout = 0]) 
     Exit 
    Else 
     FileWrite($log,"[INFO] Firefox opened successfully." & @CRLF) 
    EndIf 

    ;Wait 10 seconds for Firefox to open 
    $result = WinWait("[CLASS:MozillaWindowClass]","",10) 

    ; Check if file opened for reading OK 
    If $result == 0 Then 
     FileWrite($log,"[ERROR] Unable to open firefox class." & @CRLF) 
     MsgBox(0, "Error", "Unable to open firefox class.", [ timeout = 0]) 
     Exit 
    Else 
     FileWrite($log,"[INFO] Opened firefox class successfully." & @CRLF) 
    EndIf 

    ;Wait for 2 seconds after opening 
    Sleep(2000) 

EndFunc 

; //////////////////////////////////////////////////// 
; Connect To Firefox 
; //////////////////////////////////////////////////// 
Func ConnectToFirefox() 
    ; trying to connect to a running FireFox with MozRepl on 
    If _FFConnect(Default, Default, 3000) Then 
     FileWrite($log,"[INFO] Connected to Firefox." & @CRLF) 
    Else 
     FileWrite($log,"[ERROR] Can't connect to FireFox!" & @CRLF) 
     MsgBox(64, "", "Can't connect to FireFox!") 
    EndIf 

    ;Wait for 2 seconds after opening 
    Sleep(2000) 
EndFunc 

; //////////////////////////////////////////////////// 
; Log into page 
; //////////////////////////////////////////////////// 
Func LogIn() 
    ;Load Login Page 
    _FFOpenURL("http://localhost/login.jsp") 
    Sleep(2000) 
    If @error <> 0 Then 
     FileWrite($log,"[ERROR] Could not open URL." & @CRLF) 
     MsgBox(0, "Error", "Could not open URL.", [ timeout = 0]) 
     Exit 
    Else 
     FileWrite($log,"[INFO] Opened URL successfully." & @CRLF) 
    EndIf 


    Sleep(2000) 
    ;Click the "Log In" button, id is "login-form-submit" 
    ;<input accesskey="s" class="aui-button" id="login-form-submit" name="login" title="Press Alt+s to submit this form" type="submit" value="Log In"> 
    _FFClick("login-form-submit", "id") 

    If @error <> 0 Then 
     FileWrite($log,"[ERROR] Could not click login button." & @CRLF) 
     MsgBox(0, "Error", "Could not click login button:", [ timeout = 0]) 
     Exit 
    Else 
     FileWrite($log,"[INFO] Found and clicked login button successfully." & @CRLF) 
    EndIf 
EndFunc 
+0

К сожалению, я Бесполезный Не получишь решения. У меня такая же проблема с кнопкой _FFClick. Не могли бы вы объяснить больше? –

+0

@ IT-Fan Уверен! Я добавил еще несколько комментариев – Kayvar