W tej części samouczka zamierzamy szczegółowo omówić javascriptexecutor w selenie, a wszystkie prawdopodobne operacje można by wykonać za pomocą javascriptexecutor w selenie pod kątem WebAutomation.
Co to jest javascriptexecutor w selenie
W bibliotece Selenium javascriptexecutor jest interfejsem, który jest wdrażany w kilku klasach, takich jak ChromeDriver, FirefoxDriver, RemoteWebDriver, EdgeDriver, EventFiringWebDriver, InternetExplorerDriver itp. W celu obsługi różnych operacji związanych z Javascriptem w stosunku do odpowiednich sterowników przeglądarki.

Typy skryptów Java w Selenium i jego metody:
Dostępne są dwa rodzaje metod JavaScript:
Różnica między executeAsyncScript a executeScript:
wykonajAsyncScript : Ten typ wykonawcy skryptu Java jest używany do wykonywania asynchronicznego kodu JavaScript w kontekście aktualnie wybranej ramki lub okna.
executeScript: Ten typ JavaScript scripttexecutor, który zasadniczo wykonuje synchroniczny kod JavaScript w kontekście aktualnie wybranej ramki lub okna.
Operacja, którą można wykonać za pomocą modułu wykonawczego javascript w selenie:
Istnieje wiele kluczowych operacji internetowych, które wykonuje się, wykonując JavaScript w sterowniku przeglądarki, aby osiągnąć określone operacje, takie jak:
Omówmy wszystkie operacje wymienione powyżej:
Kliknięcie selenu javascript
Możemy wykonać operację kliknięcia w Selenium z operacją Javascript w poniższym podejściu:
public void jsClick() { Element WebElement = driver.findElement(By.xpath("Xpath_OF_Element")); JavascriptExecutor jscriptExecutor = (JavascriptExecutor) sterownik; jscriptExecutor.executeScript("argumenty[0].click();", element); }
Selenium javascript wprowadź tekst
Możemy wykonać operację sendkeys w Selenium z operacją Javascript w poniższym podejściu:
public void jsSendKeys() { JavascriptExecutor jscriptExecutor = (JavascriptExecutor) sterownik; jscriptExecutor.executeScript("document.getElementById('id_elementu').value='ENTER_THE_TEXT_HERE';"); }
Pole wyboru Selenium javascript
Moglibyśmy skorzystać z opcji w kratę= prawda lub fałsz w zależności od przypadków użycia do wykonania operacji CheckBox z Javascriptem w Selenium.
public void jsCheckBoxOps() { JavascriptExecutor jscriptExecutor = (JavascriptExecutor) sterownik; jscriptExecutor.executeScript("document.getElementById('id_of_the_element').checked=false;"); }
Generowanie alarmów Selenium javascript
Aby wygenerować alert, musimy użyć „alert ('ALERT_TEXT_TO_BE_SHOWN');”Podczas wykonywania operacji za pomocą JavaScript.
public void jsAlertGeneration() { JavascriptExecutor jscriptExecutor= (JavascriptExecutor) sterownik; jscriptExecutor.executeScript("alert('ALERT_TEXT_TO_BE_SHOWN');"); }
Odśwież stronę Selenium javascript
Aby odświeżyć stronę internetową w Selenium za pomocą JavaScript Executor, możemy użyć history.go (0).
public void jsRefreshPage() { JavascriptExecutor jscriptExecutor= (JavascriptExecutor) sterownik; jscriptExecutor.executeScript("history.go(0)"); }
Selenium javascript, aby uzyskać wewnętrzny tekst strony internetowej
Aby pobrać cały tekst wewnętrzny, możemy użyć dokument.element_dokumentu.tekst wewnętrzny;
public String jsFetchInnerText() { Sterownik JavascriptExecutor jscriptExecutor= (JavascriptExecutor); return String.valueOf(jscriptExecutor.executeScript("zwróć dokument.documentElement.innerText;")); }
Selenium javascript pobierz tytuł strony
Aby zwrócić tytuł strony, możemy użyć tytuł dokumentu; wraz z Javascript Executorem w Selenium.
public String jsWebPageTitle() { JavascriptExecutor jscriptExecutor= (JavascriptExecutor) sterownik; return String.valueOf(jscriptExecutor.executeScript("zwróć dokument.tytuł;")); }
Selenium javascript, aby uzyskać domenę
Aby pobrać nazwę domeny, której możemy użyć dokument.domena;
public String jsFetchDomain() { JavascriptExecutor jscriptExecutor= (JavascriptExecutor) sterownik; return String.valueOf(jscriptExecutor.executeScript("zwróć dokument.domena;")); }
Selenium javascript, aby uzyskać adres URL strony internetowej
Aby pobrać adres URL za pomocą JavaScript Executor z Selenium, możemy użyć dokument.URL;
public String jsFetchURL() { JavascriptExecutor jscriptExecutor= (JavascriptExecutor) sterownik; return String.valueOf(jscriptExecutor.executeScript("zwróć dokument.URL;")); }
Selenium javascript Przewijanie strony internetowej
Możemy wykonać przewijanie na wiele sposobów za pomocą JavaScript, dwa z tych podejść są pokazane poniżej we fragmencie kodu, takie jak:
public void scrollIntoView(By locator) { spróbuj { JavascriptExecutor executor = (JavascriptExecutor) sterownik; Element WebElement = driver.findElement(lokator); executor.executeScript("argumenty[0].scrollIntoView(true);", element); BASE_LOGGER .info("dla lokalizatora została wykonana operacja scrollIntoView: " + String.valueOf(element)); } catch (Wyjątek e) { String wyjątekData = e.getCause().getMessage(); BASE_LOGGER.error("Napotkano błąd np.: " + wyjątekData + " podczas wykonywania scrollIntoView na elemencie : " + lokalizator); } }
Możemy również określić wartość przewijania (ilość przewijania) w następujący sposób:
public void jsScroll() { JavascriptExecutor jscriptExecutor= (JavascriptExecutor) sterownik; jscriptExecutor.executeScript("window.scrollBy(0,1000)"); }
Selenium javascript, aby przejść do innej strony
Możemy przejść do innej strony internetowej / ekranu, podając bezpośrednio lokalizację adresu URL w javascriptexecutor w Selenium.
public void pageNavigationWithJS() { JavascriptExecutor jscriptExecutor= (JavascriptExecutor) sterownik; jscriptExecutor.executeScript("window.location = 'PageURL_To_Navigate'"); }
Selenium javascript Aby znaleźć i kliknąć ukryty element
Moglibyśmy bezpośrednio kliknąć ukryty element z JavaScriptem z zaplecza, mimo że element nie jest widoczny, oto fragment kodu dla tego samego:
public void clickOnHiddenElement() { JavascriptExecutor jscriptExecutor= (JavascriptExecutor) sterownik; WebElement hiddenElement=driver.findElement(By.id("ID_OF_ELEMENT")); jscriptExecutor.executeScript("argumenty[0].click();", hiddenElement); }
Wnioski:
Do tej pory dyskutowaliśmy o Javascript i różnych operacjach, które mają być wykonywane przy użyciu modułu wykonawczego Javascript w Selenium, zachęcamy do przejrzenia pełny tutorial Selenium aby lepiej uchwycić wszystkie różne aspekty tego samego. W nadchodzącej serii Segmenty samouczka omówimy więcej na temat Selenium Automatyzacja Framework i inne najnowsze technologie do pracy z Selenium i złam każdy zaawansowany wywiad w Selenium, przez który możesz przejść tutaj.