how handle windows pop up selenium using autoit
Ten samouczek wyjaśnia różne metody obsługi wyskakujących okienek w programie Selenium, gdy automatyzacja wychodzi poza zakres za pomocą narzędzia AutoIT:
AutoIT to narzędzie innej firmy, które pomaga Selenium w obsłudze wyskakujących okienek, takich jak wyskakujące okienka uwierzytelniania systemu Windows, aplikacje Flash, aplikacja komputerowa i tak dalej.
Selenium ogranicza się tylko do automatyzacji aplikacji internetowych. W niektórych przypadkach w aplikacji może pojawić się wyskakujące okienko systemu Windows, którego Selenium nie obsługuje. Aby poradzić sobie z takimi scenariuszami, AutoIT pomaga w automatyzacji wyskakujących okienek i aplikacji komputerowych systemu Windows.
=> Odwiedź tutaj, aby zobaczyć serię treningów Selenium dla wszystkich.
Czego się nauczysz:
Przegląd narzędzia AutoIT
Oto samouczek wideo:
Obsługa wyskakujących okienek systemu Windows za pomocą funkcji AutoIT
AutoIT to narzędzie innej firmy, które służy do obsługi aplikacji opartych na systemie Windows. Używany język skryptowy nazywa się VBScript.AutoIt jest również programem darmowym. Używa kombinacjiruch myszy i pociągnięcia klawiatury w celu zautomatyzowania działań, które nie są możliwe do wykonania przez sterownik sieciowy selenu.
AutoIt jest używany w formacie .exe, dzięki czemu można go używać w skrypcie Selenium Automation.
Spójrzmy na plik przykład, gdzie musielibyśmy przesłać plik do aplikacji.
Scenariusz polega na przesłaniu zdjęcia profilowego na LinkedIn. Kroki testowe dla tego scenariusza to:
- Wprowadź URL
- Wprowadź prawidłową nazwę użytkownika, hasło i zaloguj się.
- Kliknij ikonę przesyłania profilu.
- Pojawi się wyskakujące okienko, w którym zostanie wprowadzona ścieżka do przesłania obrazu.
Do 3. kroku Selenium Automation sobie z tym poradzi. Gdy pojawi się wyskakujące okienko Windows, skrypt AutoIT służy do automatyzacji tej części.
Przyjrzyjmy się teraz, jak zautomatyzować działania w wyskakującym okienku systemu Windows?
Można to załatwić na 4 różne sposoby.
- Używanie poleceń systemu Windows do przesyłania określonego pliku.
- Używanie poleceń sterujących do przesyłania pliku.
- Użycie argumentu wiersza polecenia do określenia nazwy pliku do przesłania.
- Korzystanie z narzędzia nagrywania AutoIT.
Wszystkie skrypty są tworzone przy użyciu AutoItScriptEditor, który jest dostępny w pakiecie folderów AutoIt.
Nawigować do AutoIt3> SciTE> SciTE.exe i otwórz aplikację ScriptEditor.
# 1) Korzystanie z poleceń systemu Windows
Mamy różne zestawy funkcji w AutoIt.
Możesz rzucić okiem tutaj. Teraz, aby zautomatyzować akcje wyskakujące systemu Windows, najpierw przeanalizujmy działania. Obejmują one:
- Ustaw fokus na bieżące okno.
- Wprowadź ścieżkę do nazwy pliku do przesłania w polu NazwaPliku.
- Kliknij przycisk Otwórz lub naciśnij Enter na klawiaturze.
Rozważmy szczegółowo powyższe punkty:
- Ustaw fokus na bieżące okno
WinWaitActive : Ustawia punkt skupienia kursora na podaną nazwę okna. W tym przypadku tytuł okna to „Otwórz”. Więc określamy polecenie jakoWinWaitActive („Otwórz”).
Należy pamiętać, że ten sam tytuł systemu Windows jest inny dla każdej przeglądarki.
Mówić, dla przeglądarki Firefox , jest to „Przesyłanie pliku”, - więc polecenie AutoIT będzieWinWaitActive („Przesyłanie plików”).
W przypadku IE: jest to „Plik do przesłania” - tak będzie polecenie AutoITWinWaitActive („Plik do przesłania”)
Chrome , to jest „Otwórz” - więc polecenie AutoIT będzieWinWaitActive („Otwórz”)
Tytuł okna należy określić na podstawie przeglądarki używanej do automatyzacji.
dwa. Wprowadź ścieżkę do nazwy pliku do przesłania w polu NazwaPliku
Wysłać - wysyła uderzenia klawiatury lub innymi słowy, symuluje działania klawiatury.
Akcje mogą polegać na naciśnięciu klawisza Enter, klawisza Shift itd. LUB wpisując ciąg, liczbę itp. W tym przykładzie muszę wpisać nazwę pliku, więc używam polecenia, aby wprowadzić nazwę pliku w oknie. -Wyślij („D: passport.jpg”)
3. Kliknij przycisk Otwórz lub naciśnij Enter na klawiaturze
Wyślij ({ENTER})- wysyła naciśnięcie klawisza ENTER do okna, które z kolei kończy operację przesyłania.
html pytania do wywiadu i odpowiedzi dla doświadczonych
Zapisz skrypt utworzony w dowolnej lokalizacji. Zostanie zapisany w formacie .au3. Po zapisaniu kliknij plik .au3 prawym przyciskiem myszy i skompiluj go.
Po kompilacji jest konwertowany do formatu .exe (format wykonywalny). Tego pliku używamy w skrypcie Selenium.
Po utworzeniu pliku .exe można go użyć w skrypcie Selenium Automation, aby uruchomić zawarte w nim polecenia
Runtime.getRuntime.exec („podaj tutaj nazwę pliku autoIt exe”)
# 2) Używanie poleceń sterujących
Mamy pewne polecenia sterujące w AutoIT do wykonywania działań. Oto lista poleceń sterujących w AutoIT.
Zobaczmy, jak zautomatyzować ten sam scenariusz przesyłania plików za pomocą tych poleceń sterujących AutoIT.
Teraz w porządku aby zautomatyzować wyskakujące okienko Windows, należy wykonać poniższe czynności:
- Ustaw fokus na bieżące okno.
- Wprowadź ścieżkę do nazwy pliku do przesłania w polu NazwaPliku.
- Kliknij przycisk Otwórz lub naciśnij Enter na klawiaturze.
Rozważmy szczegółowo powyższe punkty:
- Ustaw fokus na bieżące okno
ControlFocus:Ustawia fokus na określony element. W tym przypadku skupiamy się na polu edycji tekstu.
Kiedy spojrzysz na jego opis, zobaczysz, że wymaga jednego lub więcej parametrów. Możemy przekazać te parametry za pomocą narzędzia Windows Info AutoIt.
Chodźmy otwórz aplikację AutoIT jak poniżej:
Narzędzie Windows Info zostanie otwarte jak poniżej:
To narzędzie służy do inspekcji elementów w aplikacji / wyskakującym okienku systemu Windows.
Aby uzyskać różne atrybuty każdego elementu w wyskakującym okienku systemu Windows, przeciągnij ikonę „Finder” narzędzia Windows Info Tool i kliknij element, aby wyświetlić jego właściwości, jak poniżej.
Mamy jego właściwości wyświetlane w narzędziu, jak pokazano.
W przypadku pola FileName właściwości i odpowiadające im wartości to:
- Tytuł - Otwórz
- ClassName - Edytuj
- Instancja - 1
Korzystając z tych właściwości, możemy przekazać parametry polecenia sterującego.
Teraz, aby ustawić fokus na pole FileName, wywołujemy polecenie „ControlFocus”, jak poniżej:
- Składnia: ControlFocus („tytuł”, „tekst”, identyfikator kontrolny)
- „Tytuł” odpowiada tytułowi wyświetlanemu w narzędziu.
- Identyfikator kontrolny to połączenie ClassName + Instance w narzędziu
ControlFocus („Otwórz”, „”, „Edycja1”)
Gdzie,
- Otwarte - to tytuł
- Edit1 - to controlID (controlID = ClassName + Instance)
dwa. Wprowadź ścieżkę do nazwy pliku do przesłania w polu NazwaPliku
ControlSetText - wpisuje tekst do elementu.
- Składnia: ControlSetText („tytuł”, „tekst”, identyfikator kontrolny, „nowy tekst” (, flaga = 0))
W naszym przypadku mamy nazwę pliku w polu tekstowym.
ControlSetText („Otwórz”, ””, „Edit1”, „D: passport.jpg”)
Gdzie,
- Otwarte - to tytuł
- Edit1 - to controlID (controlID = ClassName + Instance)
- D: passport.jpg - to nazwa pliku do przesłania
3. Kliknij przycisk Otwórz lub naciśnij Enter na klawiaturze
ControlClick - wykonuje akcję kliknięcia na elemencie. W tym przykładzie klikamy przycisk „Otwórz”
- Składnia: ControlClick („tytuł”, „tekst”, identyfikator kontrolny (, przycisk = „w lewo” (, kliknięcia = 1 (, x (, y)))))
W naszym przypadku powinien kliknąć przycisk „Otwórz” w wyskakującym okienku systemu Windows.
ControlClick („Otwórz”, „”, „Button1”)
Gdzie,
- Otwarte - to tytuł
- Button1 - to controlID (controlID = ClassName + Instance)
Wywołujemy plik .exe z kodu Selenium za pomocą polecenia-Runtime.getRuntime.exec („podaj tutaj nazwę pliku autoIt exe”)
UWAGA: Kiedy musimy przesłać wiele plików w jednej instancji, możemy określić wszystkie nazwy plików w zmiennej i przekazać nazwę zmiennej w poleceniu.
ControlFocus - ustawia fokus na element.
$ files - jest zmienną utworzoną i zawiera tekst / nazwę pliku do przesłania.
ControlSetText - przekazuje zmienną z nazwami plików do przesłania do elementu „Edit”.
ContolClick - wykonuje akcję kliknięcia na elemencie.
# 3) Użycie wiersza poleceń do określenia nazwy pliku do przesłania
Do tej samej procedury można podejść w inny sposób, w którym nazwa pliku jest uzyskiwana od użytkownika. Odbywa się to przy użyciu podejścia wiersza poleceń.
Zamiast bezpośrednio określać nazwę pliku w AutoIT, przekazujemy ją w kodzie Selenium, jak poniżej:
Skrypt AutoIT: (Upload.exe)
ControlFocus(“Open”,””,”Edit1”) ControlSetText(“Open”,””,”Edit1”,$cmdLine(1)) ControlClick(“Open”,””,”Button1”)
W kodzie selenu:
Określamy to jako:
Runtime.getRuntime.exec(“Path of .exe file”+””+ “FileToUpload”)
W takim przypadku tak będzie
Runtime.getRuntime.exec(“D:automationUpload.exe”+””+ “D:automationimage.jpg”)
Zapisz utworzony plik i skompiluj go, aby przekonwertować go na format wykonywalny.
# 4) Korzystanie z funkcji nagrywania AutoIT
Ta funkcja jest dostępna tylko w wersjach poniżej 3.3.14.0. Wersje większe niż ta nie obsługują tej funkcji.
Aby otworzyć narzędzie Record, przejdź do AutoIt3> Extras> Au3Record> Au3Record.exe
Kiedy zaczynamy z tego korzystać, zawsze pamiętaj o odznaczeniu opcji „Record Mouse”, ponieważ interakcja myszy różni się w zależności od rozdzielczości ekranu. Zawsze zapisuj uderzenia klawiatury.
Wybierz „Kliknij, aby nagrać” w narzędziu, a działania zostaną w nim zarejestrowane.
Po zakończeniu nagrywania wybierz „Kliknij, aby zatrzymać” i zapisz plik
Możesz otworzyć zapisany plik .au3, aby zobaczyć polecenia utworzone dla każdej wykonanej czynności
Skompiluj skrypt i przekonwertuj go do pliku .exe.
Utworzony plik .exe może być bezpośrednio użyty w kodzie Selenium do wykonania, jak poniżej:
Runtime.getRuntime.exec(“D:automationRecord.exe”)
Wniosek
W ten sposób każdy wyskakujący system Windows, taki jak uwierzytelnianie, przesyłanie pliku lub otwieranie pliku itp., Może być obsługiwany za pomocą AutoIT, włączając jego plik skryptu do Selenium.
W następnym rozdziale dowiemy się o innym narzędziu innej firmy o nazwie Sikuli, które służy do automatyzacji aplikacji wykorzystujących technikę rozpoznawania obrazu.
=> Odwiedź tutaj, aby nauczyć się selenu od podstaw.
rekomendowane lektury
- Jak radzić sobie z alertami / wyskakującymi okienkami w Selenium WebDriver - Samouczek Selenium nr 16
- Cucumber Selenium Tutorial: Cucumber Java Selenium Integracja WebDriver
- 10 najlepszych wyjątków selenu i jak sobie z nimi radzić (dokładny kod)
- Wprowadzenie do Selenium WebDriver - samouczek Selenium # 8
- Samouczek AutoIt - pobieranie, instalacja i podstawowy skrypt AutoIt AutoIt
- Samouczek Selenium ChromeDriver: Testy Selenium Webdriver w przeglądarce Chrome
- 30+ najlepszych samouczków dotyczących selenu: naucz się selenu z prawdziwymi przykładami
- Możliwość pracy w niepełnym wymiarze godzin jako freelancer dla ekspertów Selenium