implementation our first webdriver script selenium webdriver tutorial 10
V předchozích dvou kurzech jsme vás seznámili se základní architekturou a funkce WebDriveru a infrastruktura potřebná k zahájení práce se Selenium WebDriver . Za předpokladu, že jste všichni mohli nastavit systém se všemi potřebnými nástroji a balíčky, posuneme se dále s implementací našeho prvního testovacího skriptu WebDriver.
Pohybující se dopředu s následkem Výukový program Selenium WebDriver , vytváříme skript WebDriver. Rovněž bychom rozptýlili světlo na základní a běžně používané Příkazy WebDriver . Dozvěděli bychom se také o lokalizační strategie prvků uživatelského rozhraní a jejich zahrnutí do testovacích skriptů. Také bychom si podrobně prostudovali Get Commands.
Co se naučíte:
- Tvorba skriptů
- Návod na kód
- Provedení testu
- Nalezení webových prvků
- Typy lokátorů a jejich syntaxe
- Závěr
- Doporučené čtení
Tvorba skriptů
Pro vytvoření skriptu bychom použili projekt „Learning_Selenium“ vytvořený v předchozím tutoriálu a „gmail.com“ jako testovanou aplikaci (AUT).
Scénář:
- Spusťte prohlížeč a otevřete „Gmail.com“.
- Ověřte název stránky a vytiskněte výsledek ověření.
- Zadejte uživatelské jméno a heslo.
- Klikněte na tlačítko Přihlásit se.
- Zavřete webový prohlížeč.
Krok 1: V rámci projektu „Learning_Selenium“ vytvořte novou třídu Java s názvem „Gmail_Login“.
Krok 2: Zkopírujte a vložte níže uvedený kód do třídy „Gmail_Login.java“.
import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; public class Gmail_Login { /** * @param args */ public static void main(String() args) { // objects and variables instantiation WebDriver driver = new FirefoxDriver(); String appUrl = 'https://accounts.google.com'; // launch the firefox browser and open the application url driver.get(appUrl); // maximize the browser window driver.manage().window().maximize(); // declare and initialize the variable to store the expected title of the webpage. String expectedTitle = ' Sign in - Google Accounts '; // fetch the title of the web page and save it into a string variable String actualTitle = driver.getTitle(); // compare the expected title of the page with the actual title of the page and print the result if (expectedTitle.equals(actualTitle)) { System.out.println('Verification Successful - The correct title is displayed on the web page.'); } else { System.out.println('Verification Failed - An incorrect title is displayed on the web page.'); } // enter a valid username in the email textbox WebElement username = driver.findElement(By.id('Email')); username.clear(); username.sendKeys('TestSelenium'); // enter a valid password in the password textbox WebElement password = driver.findElement(By.id('Passwd')); password.clear(); password.sendKeys('password123'); // click on the Sign in button WebElement SignInButton = driver.findElement(By.id('signIn')); SignInButton.click(); // close the web browser driver.close(); System.out.println('Test script executed successfully.'); // terminate the program System.exit(0); } }
Výše uvedený kód je ekvivalentní textovému scénáři představenému dříve.
Návod na kód
Prohlášení o importu:
import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.By;
Před samotným skriptováním musíme importovat výše uvedené balíčky:
import org.openqa.selenium.WebDriver - Odkazuje na rozhraní WebDriver, které je nutné k vytvoření instance nového webového prohlížeče.
import org.openqa.selenium.firefox.FirefoxDriver - Odkazy na požadovanou třídu FirefoxDriver vytvoří instanci ovladače specifického pro Firefox v instanci prohlížeče vytvořenou pomocí rozhraní WebDriver.
import org.openqa.selenium.WebElement - Odkazy na třídu WebElement, která je nutná k vytvoření instance nového webového prvku.
import org.openqa.selenium.By - Odkazy na třídu By, na které se volá typ lokátoru.
Jak a kdy se náš projekt rozroste, je zřejmé a logické, že možná budeme muset zavést několik dalších balíčků pro složitější a odlišné funkce, jako jsou manipulace s programem Excel, připojení k databázi, protokolování, tvrzení atd.
výkonnostní testovací otázky pro zkušené
Instance objektu
Ovladač WebDriver = nový FirefoxDriver ();
Vytvoříme referenční proměnnou pro rozhraní WebDriver a vytvoříme instanci pomocí třídy FirefoxDriver. Spustí se výchozí profil Firefoxu, což znamená, že s instancí Firefoxu nebudou načtena žádná rozšíření a doplňky a že běží v bezpečném režimu.
Spuštění webového prohlížeče
driver.get (appUrl);
NA dostat() metoda se volá na instanci WebDriver pro spuštění nové instance webového prohlížeče. Sekvence znaků řetězce předaná jako parametr do dostat() metoda přesměruje spuštěnou instanci webového prohlížeče na adresu URL aplikace.
Maximalizujte okno prohlížeče
driver.manage (). window (). maximize ();
The maximalizovat() metoda se používá k maximalizaci okna prohlížeče brzy po přesměrování na adresu URL aplikace.
Načíst název stránky
driver.getTitle ();
The getTitle () metoda se používá k načtení názvu aktuální webové stránky. Načtený titul lze tedy načíst do řetězcové proměnné.
Srovnání mezi očekávanými a skutečnými hodnotami:
if (expectedTitle.equals(actualTitle)) { System.out.println('Verification Successful - The correct title is displayed on the web page.'); } else { System.out.println('Verification Failed - An incorrect title is displayed on the web page.'); }
Výše uvedený kód používá konstrukty Java podmíněného příkazu k porovnání skutečné hodnoty a očekávané hodnoty. Na základě získaného výsledku by byl proveden tiskový příkaz.
Instance instance WebElement
WebElement uživatelské jméno = driver.findElement (By.id („e-mail“));
Ve výše uvedeném prohlášení vytvoříme instanci odkazu WebElement pomocí „Driver.findElement (By.id („ e-mail “))“. Uživatelské jméno lze tedy použít k odkazu na textové pole E-mail v uživatelském rozhraní pokaždé, když na něm chceme provést nějakou akci.
Vymazat příkaz
username.clear ();
Metoda / příkaz clear () se používá k vymazání hodnoty přítomné v textovém poli, pokud existuje. Vymaže také výchozí hodnotu zástupného symbolu.
příkaz sendKeys
username.sendKeys („TestSelenium“);
The sendKeys () metoda / příkaz se používá k zadání / zadání zadané hodnoty (v závorkách) do textového pole. Všimněte si, že sendKeys () metoda je volána na WebElement objektu, který byl vytvořen pomocí vlastnosti elementu odpovídající prvku UI.
nejlepší firewall pro Windows 7 64 bit
Výše uvedený blok kódu zadává řetězec „TestSelenium“ uvnitř textového pole E-mail v aplikaci Gmail.
sendKeys je jedním z nejoblíbenějších příkazů napříč skripty WebDriver.
Klikněte na příkaz
SignInButton.click ();
Jako sendKeys (), klikněte () je další nadměrně používaný příkaz k interakci s webovými prvky. Klikněte () příkaz / metoda se používá ke kliknutí na webový prvek nacházející se na webové stránce.
Výše uvedený blok kódu klikne na tlačítko „Přihlásit se“ v aplikaci Gmail.
Poznámky:
- Na rozdíl od metody sendKeys () nelze metody click () nikdy parametrizovat.
- Kliknutím na webový prvek se občas může načíst nová stránka úplně. Pro udržení takových případů je tedy metoda click () kódována tak, aby počkala, až se stránka načte.
Zavřete webový prohlížeč
driver.close ();
Funkce close () slouží k zavření aktuálního okna prohlížeče.
Ukončete program Java
System.exit (0);
Metoda Exit () násilně ukončuje program Java. Nezapomeňte tedy před ukončením programu Java zavřít všechny instance prohlížeče.
Provedení testu
Testovací skript nebo jednoduše program Java lze spustit následujícími způsoby:
# 1. Na liště nabídky Eclipse je ikona pro spuštění testovacího skriptu. Viz následující obrázek.
Uvědomte si, že by byla provedena pouze vybraná třída.
role obchodního analytika v agilním skrumáži
#dva. Klikněte pravým tlačítkem kdekoli uvnitř třídy v editoru, vyberte možnost „Spustit jako“ a klikněte na „Java aplikaci“.
# 3. Další zkratka k provedení testovacího skriptu je - Stiskněte ctrl + F11.
Na konci cyklu spuštění se zobrazí tiskové prohlášení „Testovací skript úspěšně proveden.“ najdete v konzole.
Nalezení webových prvků
Webové prvky ve WebDriveru lze lokalizovat a kontrolovat stejným způsobem, jako jsme to udělali v předchozích tutoriálech Selenium IDE. Selenium IDE a Firebug lze použít ke kontrole webového prvku v grafickém uživatelském rozhraní. K vyhledání webových prvků se důrazně doporučuje použít Selen IDE. Jakmile je webový prvek úspěšně nalezen, zkopírujte a vložte cílovou hodnotu do kódu WebDriver. Typy lokátorů a lokalizační strategie jsou téměř stejné, kromě syntaxe a jejich použití.
Ve WebDriveru jsou webové prvky umístěny pomocí dynamických vyhledávačů (findElement (By.locatorType („hodnota lokátoru“))).
Ukázkový kód:
driver.findElement (By.id („e-mail“));
Typy lokátorů a jejich syntaxe
Typ lokátoru | Syntax | Popis |
---|---|---|
cssSelector | driver.findElement (By.cssSelector („Výběr CSS“)) | Vyhledejte podle hodnoty selektor CSS |
id | driver.findElement (By.id („ID_of_Element“)) | Vyhledejte podle hodnoty atribut „id“ |
jméno třídy | driver.findElement (By.className („Class_of_Element“)) | Vyhledejte podle hodnoty atribut „třída“ |
linkText | driver.findElement (By.linkText („Text“)) | Vyhledejte podle hodnoty text hypertextového odkazu |
partialLinkText | driver.findElement (By.partialLinkText („PartialText“)) | Vyhledejte podle hodnoty podtext hypertextového odkazu |
název | driver.findElement (Podle jména („Name_of_Element“)) | Vyhledejte podle hodnoty Atribut „name“ |
xpath | driver.findElement (By.xpath („Xpath“)) | Vyhledejte podle hodnoty xpath |
název štítku | driver.findElement (By.tagName („vstup“)) | Vyhledejte podle hodnoty jeho název značky |
Závěr
V tomto kurzu jsme vyvinuli automatizační skript pomocí WebDriver a Java. Také jsme diskutovali o různých komponentách, které tvoří skript WebDriver.
Tady jsou podstata tohoto výukového programu Selenium WebDriver:
- Před samotným skriptováním musíme importovat několik balíčků, abychom mohli vytvořit skript WebDriver.
- import openqa.selenium.By;
- import openqa.selenium.WebDriver;
- import openqa.selenium.WebElement;
- import openqa.selenium.firefox.FirefoxDriver;
- NA dostat() metoda použitá ke spuštění nové instance webového prohlížeče. Posloupnost znaků předaná jako parametr do metody get () přesměruje spuštěnou instanci webového prohlížeče na adresu URL aplikace.
- The maximalizovat() metoda se používá k maximalizaci okna prohlížeče.
- The Průhledná() metoda se používá k vymazání hodnoty přítomné v textovém poli, pokud existuje.
- The sendKeys () metoda se používá k zadání zadané hodnoty do textového pole.
- Klikněte () metoda se používá ke kliknutí na webový prvek nacházející se na webové stránce.
- Ve WebDriveru lze webové prvky lokalizovat pomocí dynamických vyhledávačů.
- K dispozici jsou následující typy lokátorů:
- id
- jméno třídy
- název
- xpath
- cssSelector
- linkText
- partialLinkText
- název štítku
V dalším kurzu bychom v dalším kurzu posunuli naše zaměření směrem k rámci, který pomáhá při testování automatizace známém jako TestNG. Měli bychom podrobnou studii o různých druzích anotací poskytovaných rámcem.
Další tutoriál # 11 : Než se ponoříme hluboko do rámců, uvidíme podrobnosti o JUnit - nástroji pro testování jednotek s otevřeným zdrojovým kódem. Většina programátorů používá JUnit, protože je to snadné a jeho testování není příliš náročné. Tento kurz poskytne informace o JUnit a jeho použití ve skriptu selenu.
Poznámka pro čtenáře: Zatímco náš další výukový program řady Selenium je v režimu zpracování, čtenáři mohou začít vytvářet vlastní základní skripty WebDriver. Pro více pokročilých skriptů a konceptů budeme mít v této sérii různé další výukové programy Selenium WebDriver.
Pokud máte potíže s vytvořením nebo spuštěním skriptů WebDriver, dejte nám vědět v komentářích.
Doporučené čtení
- Úvod do selenu WebDriver - Selenium Tutorial # 8
- Cucumber Selenium Tutorial: Cucumber Java Selenium WebDriver Integration
- Úplné nastavení a instalace WebDriveru s Eclipse - výuka selenu č. 9
- Zkontrolujte viditelnost webových prvků pomocí různých typů Příkazy WebDriver - Selenium Tutorial # 14
- Efektivní scénáře selenu a řešení potíží - Scénář selenu č. 27
- Jak zpracovat upozornění / vyskakovací okna v Selenium WebDriver - Selenium Tutorial # 16
- Ladění selenových skriptů pomocí protokolů (výuka Log4j) - výuka selenu č. 26
- Úvod do rámce JUnit a jeho použití v selenovém skriptu - výuka selenu č. 11