2 Obiekty JavaScript pozycji przeglądarki

Przegląd

Ta sekcja opisuje rozszerzenia języka JavaScript w Zabbix zaimplementowane przy użyciu Duktape do użycia w skrypcie pozycji Browser. Rozszerzenia te uzupełniają obiekty JavaScript opisane na stronie Dodatkowe obiekty JavaScript.

Browser

Obiekt Browser zarządza sesjami WebDriver, inicjalizując sesję podczas tworzenia i kończąc ją podczas niszczenia obiektu. Pojedynczy skrypt może obsługiwać maksymalnie cztery obiekty Browser.

Aby utworzyć obiekt Browser, użyj składni new Browser(options). Parametr options (obiekt JSON) określa opcje przeglądarki, zwykle wynik metody opcji WebDriver (na przykład Browser.chromeOptions()).

Obiekt Browser obsługuje następujące metody.

Method Description
navigate(url) Przejdź do określonego adresu URL.

Parametry:
url - (string) Adres URL, do którego należy przejść.
getUrl() Zwraca ciąg znaków z adresem URL otwartej strony.
getPageSource() Zwraca ciąg znaków z kodem źródłowym otwartej strony.
findElement(strategy, selector) Zwraca obiekt Element z jednym elementem na otwartej stronie (lub zwraca null, jeśli żadne elementy nie pasują do strategy i selector).

Parametry:
strategy - (string, css selector/link text/partial link text/tag name/xpath) Strategia lokalizacji;
selector - (string) Selektor elementu używający określonej strategii lokalizacji.
findElements(strategy, target) Zwraca tablicę obiektów Element z wieloma elementami na otwartej stronie (lub zwraca pustą tablicę, jeśli żadne elementy nie pasują do strategii lokalizacji i celu).

Parametry:
strategy - (string, css selector/link text/partial link text/tag name/xpath) Strategia lokalizacji;
target - (string) Selektor elementu używający określonej strategii lokalizacji.
getCookies() Zwraca tablicę obiektów Cookie.
addCookie(cookie) Ustawia pliki cookie.

Parametry:
cookie - (Cookie object) Plik cookie do ustawienia.
getScreenshot() Zwraca ciąg znaków zakodowany w base64, reprezentujący obraz obszaru widoku przeglądarki.
setScreenSize(x,y) Ustawia rozmiar obszaru widoku przeglądarki.

Parametry:
x - (string) Szerokość w pikselach;
y - (string) Wysokość w pikselach.
setScriptTimeout(timeout) Ustawia limit czasu ładowania skryptu.

Parametry:
timeout - (integer) Wartość limitu czasu w milisekundach.
setSessionTimeout(timeout) Ustawia limit czasu sesji (ładowania strony).

Parametry:
timeout - (integer) Wartość limitu czasu w milisekundach.
setElementWaitTimeout(timeout) Ustawia limit czasu strategii lokalizacji elementu (implicit).

Parametry:
timeout - (integer) Wartość limitu czasu w milisekundach.
collectPerfEntries(mark) Zbiera wpisy wydajności do pobrania metodą getResult().

Parametry:
mark - (string, optional) Znacznik migawki wydajności.
getRawPerfEntries() Zwraca tablicę obiektów wpisów wydajności.
getResult() Zwraca obiekt Result ze statystykami sesji przeglądarki (informacje o błędach, migawki wydajności itp.).
getError() Zwraca obiekt BrowserError z błędami przeglądarki (lub zwraca null, jeśli nie ma błędów przeglądarki).
setError(message) Ustawia niestandardowy komunikat błędu, który ma zostać uwzględniony w obiekcie Result.

Parametry:
message - (string) Komunikat błędu.
discardError() Odrzuca błąd, który ma zostać zwrócony w obiekcie Result.
getAlert() Zwraca obiekt Alert z alertami przeglądarki (lub zwraca null, jeśli nie ma alertów przeglądarki).
chromeOptions() Zwraca obiekt chromeOptions ze wstępnie zdefiniowanymi opcjami przeglądarki Chrome.
firefoxOptions() Zwraca obiekt firefoxOptions ze wstępnie zdefiniowanymi opcjami przeglądarki Firefox.
safariOptions() Zwraca obiekt safariOptions ze wstępnie zdefiniowanymi opcjami przeglądarki Safari.
edgeOptions() Zwraca obiekt edgeOptions ze wstępnie zdefiniowanymi opcjami przeglądarki Edge.
switchFrame(target) Przełącza do określonej ramki.

Parametry:
target - (browser element or integer, optional) Ramka docelowa. Aby wybrać ramkę według elementu, przekaż element. Aby wybrać ramkę według indeksu, przekaż liczbę. Jeśli pozostawiono puste, nastąpi przełączenie do kontekstu przeglądania najwyższego poziomu.

Wszystkie metody Browser mogą zgłaszać następujące błędy:

  • BrowserError - dziedziczony z obiektu Error, zgłaszany, jeśli konstruktor Browser zakończy się niepowodzeniem; zawiera dodatkową właściwość browser z obiektem Browser, który zgłosił ten BrowserError.
  • WebdriverError - dziedziczony z BrowserError; zawiera te same właściwości co obiekt BrowserError, które wskazują, czy błąd został wygenerowany w odpowiedzi na błąd w odpowiedzi WebDriver.

Element

Obiekt Element jest zwracany przez metody findElement()/findElements() obiektu Browser i nie może być tworzony bezpośrednio.

Obiekt Element reprezentuje element na stronie internetowej i udostępnia metody do interakcji z nim.

Poniższe metody są obsługiwane przez obiekt Element.

Method Description
getAttribute(name) Zwraca ciąg wartości atrybutu elementu (lub zwraca null, jeśli określony atrybut nie został znaleziony).

Parametry:
name - (string) Nazwa atrybutu.
getProperty(name) Zwraca ciąg wartości właściwości elementu (lub zwraca null, jeśli określona właściwość nie została znaleziona).

Parametry:
name - (string) Nazwa właściwości.
getText() Zwraca ciąg wartości tekstowej tekstu elementu.
click() Kliknij element.
clear() Wyczyść zawartość edytowalnego elementu.
sendKeys(keys) Wysyła klawisze.

Parametry:
keys - (string) Klawisze do wysłania.

Obiekt Cookie jest zwracany przez metodę getCookies() obiektu Browser i przekazywany do metody addCookie().

Chociaż obiekt Cookie nie ma żadnych metod, może zawierać następujące właściwości:

Właściwość Typ Opis
name string Nazwa pliku cookie.
value string Wartość pliku cookie.
path string Ścieżka, dla której plik cookie jest prawidłowy.
Domyślnie "/", jeśli zostanie pominięta podczas dodawania pliku cookie.
domain string Domena, dla której plik cookie jest widoczny.
Domyślnie domena URL aktywnego dokumentu bieżącego kontekstu przeglądania sesji, jeśli zostanie pominięta podczas dodawania pliku cookie.
secure boolean Wskazuje, czy plik cookie jest bezpieczny.
Domyślnie false, jeśli zostanie pominięte podczas dodawania pliku cookie.
httpOnly boolean Wskazuje, czy plik cookie jest dostępny tylko przez HTTP.
Domyślnie false, jeśli zostanie pominięte podczas dodawania pliku cookie.
expiry integer Czas wygaśnięcia pliku cookie (w sekundach od epoki Unix). Nie może być ustawiony, jeśli zostanie pominięty podczas dodawania pliku cookie.
sameSite string Atrybut sameSite pliku cookie, który określa, czy plik cookie powinien być ograniczony do kontekstu first-party lub same-site.
Może być ustawiony na "Lax" lub "Strict".
Domyślnie "None", jeśli zostanie pominięty podczas dodawania pliku cookie.

Alert

Obiekt Alert reprezentuje alert strony internetowej, jest zwracany przez metodę getAlert() obiektu Browser i nie może być tworzony bezpośrednio.

Obiekt Alert zawiera właściwość text z tekstem alertu (lub null, jeśli nie ma alertów).

Następujące metody są obsługiwane przez obiekt Alert.

Method Description
accept() Akceptuje alert.
dismiss() Odrzuca alert.

Wynik

Obiekt Result zawiera statystyki sesji i jest zwracany przez metodę getResult() obiektu Browser.

Zazwyczaj obiekt Result jest konwertowany do postaci ciągu znaków i zwracany ze skryptu, a następnie przetwarzany na wartości zależnych pozycji za pomocą preprocessing.

Chociaż obiekt Result nie ma żadnych metod, może zawierać następujące właściwości.

Właściwość Typ Opis
duration string Czas trwania sesji od utworzenia sesji do pobrania wyniku.
error object Informacje o błędzie.
http_status integer Status HTTP zwrócony przez WebDriver (lub 0, jeśli nie ma błędów WebDriver).
error_code string Błąd zwrócony przez WebDriver (lub pusty ciąg znaków, jeśli nie ma błędów WebDriver).
message string Komunikat błędu WebDriver (lub pusty ciąg znaków, jeśli nie ma błędów WebDriver).
performance_data object Statystyki wydajności.
summary object Podsumowanie wydajności.
navigation object Podsumowanie nawigacji.
resource object Podsumowanie zasobów.
details array of objects Statystyki wydajności po każdej operacji, która mogła skutkować nawigacją.
mark string (opcjonalnie) Oznaczenie migawki wydajności określone za pomocą metody collectPerfEntries().
navigation object Statystyki nawigacji.
resource object Podsumowanie zasobów dla tego kroku.
user array of objects Tablica statystyk typu mark/measure.
marks array of objects Indeksy oznaczonych migawek wydajności.
name string Nazwa oznaczenia migawki wydajności.
index integer Indeks migawki wydajności w tablicy details.