Rozszerzenia Selenium Core (User-Extensions.js)

Spisie treści:

Anonim

Aby zrozumieć rozszerzenia, przyjrzyjmy się najpierw trzem filarom selenu IDE

  1. Akcja: jaką operację wykonujesz na ekranie interfejsu użytkownika

  2. Asesorzy / Asercja: Jak weryfikujesz dane, które otrzymujesz z interfejsu użytkownika

  1. Strategia lokalizatora: Jak możemy znaleźć element w interfejsie użytkownika.

Teraz Selenium IDE ma bardzo dojrzałą bibliotekę z dużą ilością akcji, asercji / oceniających i strategii lokalizacyjnych.

Ale czasami musimy dodać do niego więcej funkcji, aby spełnić wymagania naszego projektu. W takiej sytuacji możemy rozszerzyć tę bibliotekę, dodając nasze niestandardowe rozszerzenia. Te niestandardowe rozszerzenia nazywane są „rozszerzeniami użytkownika”.

Na przykład potrzebujemy akcji, która może przekonwertować tekst na wielkie litery przed wypełnieniem go elementem sieciowym. Nie można znaleźć tej akcji w domyślnej bibliotece akcji. W takim przypadku możesz stworzyć własne „rozszerzenie użytkownika”. W tym samouczku nauczymy się, jak utworzyć rozszerzenie użytkownika, aby przekonwertować tekst na wielkie litery

Wymóg utworzenia rozszerzenia użytkownika Selenium:

Aby stworzyć rozszerzenie użytkownika dla Selenium IDE, musimy znać podstawową koncepcję koncepcji obiektu prototypowego JavaScript i Java Script.

Aby utworzyć rozszerzenie użytkownika, musisz utworzyć metody skryptów Java i dodać je do prototypu obiektu selenium i prototypu obiektu PageBot.

Jak Selenium IDE rozpoznaje rozszerzenie użytkownika?

Po dodaniu rozszerzenia użytkownika do Selenium IDE, gdy uruchamiamy Selenium IDE, wszystkie te rozszerzenia w prototypie javascript są ładowane, a Selenium IDE rozpoznaje je po ich nazwie.

Jak utworzyć rozszerzenie użytkownika

Krok 1) Akcja - wszystkie akcje są uruchamiane przez „do”, tzn. Jeśli akcja dotyczy tekstu pisanego dużymi literami, jej nazwa będzie doTextUpperCase. Kiedy dodamy tę metodę akcji w Selenium IDE, Selenium IDE sam utworzy metodę oczekiwania dla tej akcji. Więc w tym przypadku, kiedy tworzymy akcję doTextUpperCase , Selenium IDE utworzy odpowiednią funkcję wait jako TextUpperCaseAndWait . Może przyjąć dwa parametry

Przykład: czynność związana z tekstem wielkimi literami

Selenium.prototype.doTextUpperCase = function (lokalizator, tekst) {// Tutaj findElement jest w stanie obsłużyć wszystkie typy lokalizatorów (xpath, css, name, id, className), musimy tylko przekazać tekst lokalizatoraelement var = this.page (). findElement (lokalizator);// Utwórz tekst do wpisaniatext = text.toUpperCase ();// Zastąp tekst elementu nowym tekstemthis.page (). replaceText (element, tekst);};

Krok 2) Oceniający / Asercja - Wszyscy oceniający zarejestrowani w prototypie obiektu selenowego będą poprzedzeni prefiksem

przez „get” lub „is” Ex. getValueFromCompoundTable, isValueFromCompoundTable. Może akceptować dwa parametry, jeden dla celu, a drugi dla pola wartości w przypadku testowym.

Dla każdego asesora będą odpowiadały funkcje weryfikacyjne poprzedzone przedrostkiem „weryfikuj”, „potwierdzaj” i przedrostkiem funkcji oczekiwania znakiem „waitFor”

Przykład: dla oceniających z dużymi literami

Selenium.prototype.assertTextUpperCase = function (lokalizator, tekst) {// Wszystkie strategie lokalizacyjne są automatycznie obsługiwane przez „findElement”element var = this.page (). findElement (lokalizator);// Utwórz tekst do weryfikacjitext = text.toUpperCase ();// Pobierz rzeczywistą wartość elementuvar currentValue = element.value;// Upewnij się, że rzeczywista wartość jest zgodna z oczekiwanąAssert.matches (spodziewana wartość, rzeczywista wartość);};Selenium.prototype.isTextEqual = function (lokalizator, tekst) {return this.getText (lokalizator) .value === tekst;};Selenium.prototype.getTextValue = function (lokalizator, tekst) {return this.getText (lokalizator) .value;};

Krok 3) Strategia lokalizatora - Jeśli chcemy stworzyć własną funkcję do lokalizacji elementu, to wtedy

musimy rozszerzyć prototyp PageBota o funkcję z przedrostkiem „locateElementBy”.

Będzie to wymagało dwóch parametrów, pierwszy będzie ciągiem lokalizatora, a drugi dokumentem

gdzie należy go przeszukać.

Przykład: dla lokalizatora tekstu wielkimi literami

// „inDocument” to dokument, którego szukasz.PageBot.prototype.locateElementByUpperCase = function (tekst, inDocument) {// Utwórz tekst do wyszukaniavar spodziewanaValue = text.toUpperCase ();// Zapętlaj przez wszystkie elementy, szukając tych, które mają// wartość === nasza oczekiwana wartośćvar allElements = inDocument.getElementsByTagName ("*");// Ta gwiazdka '*' jest rodzajem wyrażenia regularnego, które przejdzie przez każdy element (w HTML DOM każdy element z pewnością ma nazwę tagu, taką jak , ,

, , ,
itp.). Tutaj naszym motywem jest znalezienie elementu, który pasuje do podanego przez nas tekstu wielkimi literami, więc przeszukamy go ze wszystkimi elementami, a kiedy otrzymamy dopasowanie, będziemy mieć poprawny element sieci.for (var i = 0; i

Jak korzystać z nowo utworzonego rozszerzenia podstawowego?

  1. Idź do Selenium IDE

    Kliknij Opcje -> Opcje…

  1. W sekcji Ogólne wybierz lokalizację nowo utworzonego rozszerzenia Selenium Core

  2. Kliknij OK i uruchom ponownie Selenium IDE

  1. Rozszerzenie znajdziesz na liście poleceń

Oto lista popularnych rozszerzeń / wtyczek używanych w Selenium IDE

Nazwa Cel, powód
Ulubione Aby oznaczyć zestaw testów jako ulubiony i wykonać je jednym kliknięciem
Flex Pilot X Do automatyzacji opartej na Flex
FlexMonkium Do nagrywania i odtwarzania w oparciu o Adobe Flex Testowanie w Selenium IDE
Rejestrowanie plików Do zapisywania logów w pliku
Kontrola przepływu Aby kontrolować przepływ wykonywania testów
Podświetl elementy Aby wyróżnić formant internetowy
Niejawne oczekiwanie Czekać na element przez określony czas
Zrzut ekranu w przypadku niepowodzenia Zrób zrzut ekranu w przypadku awarii
Wyniki testu Zapisz wynik testu dla zestawu testów jednym kliknięciem

Możesz uzyskać to wszystko i wiele więcej z sekcji pobierania oficjalnej strony SeleniumHQ

http://docs.seleniumhq.org/download/

Podsumowanie:

  • Istnieją trzy części Selenium IDE, Action, Assessors / Assertion, Locator strategy.
  • Rozszerzenie użytkownika jest tworzone, gdy Selenium IDE nie spełnia bieżących wymagań.
  • Aby stworzyć rozszerzenie użytkownika, wymagane jest dodanie javascript do prototypu obiektu selenium.
  • Po utworzeniu rozszerzenia wymagane jest dodanie go w Selenium IDE i zrestartowanie IDE.

Pobierz rozszerzenie Selenium Core używane w tym samouczku