Pyautogui nie wprowadza wszystkich znaków podczas korzystania z funkcji pisania na maszynie

2

próbujemy zautomatyzować okno dialogowe SecurityAgent, w którym wprowadzamy hasło przy użyciu pyautogui w 10.13 OSx

hasło = „12345678” przy użyciu

pyautogui.typewrite(password)

ta funkcja rozwiązała problem. Jednak uruchamiamy ten skrypt wiele razy na tej samej maszynie

Nie jestem pewien, czy dzieje się tak ze względu na powolność maszyny, czy coś takiego, tylko 7 znaków jest zapisywanych na ekranie i kliknięcie Enter nie powiodło się.

Próbowałem również dodać wartość interwału i pauzy w pyautogui. Ale to nie pomaga. Losowo skrypt nie działa.

Zamiast wpisywać całą sekwencję, próbowałem uruchomić pętlę jak poniżej

for c in password:
  pyautogui.press(c)

Nadal to nie pomogło. Czy ktoś może pomóc z alternatywnym rozwiązaniem?

srinath
źródło

Odpowiedzi:

2

Z AppleScript zrobiłem to do użycia w Automatorze:

https://gist.github.com/SuperHofstad/f826985ec536ff2d650699cb37a7fadc

set appPass to "PASSWORD" as text

tell application "System Events"
    delay 0.5
    repeat until exists process "SecurityAgent"
        delay 0.5
    end repeat
    tell process "SecurityAgent"
        keystroke appPass
        key code 36
    end tell
end tell
Petter Hofstad
źródło
Nie idealnie, ale kod to początek. Może uda się to zrobić innym razem ...
Petter Hofstad
0

Być może piszesz zbyt szybko. Próbowaćpyautogui.typewrite(password, interval=0.2)

Luna
źródło