efficient selenium scripting
V predchádzajúcom tutoriáli sme diskutovali o technických dopadoch pri implementácii prihlásenia do rámca . Diskutovali sme utilita log4j na dĺžku. Diskutovali sme o základných komponentoch, ktoré tvoria log4j z hľadiska použiteľnosti. Vďaka doplnkom a rozloženiam je používateľ využívaný na výber požadovaného formátu / vzoru protokolovania a zdroja / umiestnenia údajov.
V aktuálnom 27. návode v tomto komplexná online vzdelávacia séria selénu , presunuli by sme naše zameranie na niekoľko malicherných ešte dôležité témy , čo by nás viedlo pri riešení niektorých opakujúcich sa problémov. Môžeme alebo nemusíme ich použiť v denných skriptoch, ale z dlhodobého hľadiska by boli užitočné.
By sme prediskutujte niektoré pokročilé koncepty, v ktorých by sme sa zaoberali udalosťami myši a klávesnice, prístupom k viacerým odkazom implementáciou zoznamov . Prečo teda nezačať a o týchto témach v krátkosti diskutovať pomocou vhodných scenárov a úryvkov kódu.
čo robiť so súbormi .torrent
Čo sa dozviete:
- Vykonávatelia JavaScriptu
- Prístup k viacerým prvkom v zozname
- Spracovanie udalostí klávesnice a myši
- Záver
- Odporúčané čítanie
Vykonávatelia JavaScriptu
Počas automatizácie testovacieho scenára existujú určité akcie, ktoré sa stanú neoddeliteľnou súčasťou testovacích skriptov.
Môžu to byť tieto akcie:
- Kliknutie na tlačidlo, hypertextový odkaz atď.
- Písanie do textového poľa
- Vertikálne alebo horizontálne rolovanie, kým sa požadovaný objekt nezobrazí
- A oveľa viac
Teraz je zrejmé z predchádzajúcich tutoriálov, že najlepším spôsobom automatizácie takýchto akcií je použitie selénových príkazov.
Ale čo keď príkazy selénu nefungujú?
Áno, je absolútne možné, že úplne základné a základné príkazy selénu v určitých situáciách nefungujú.
To znamená, že aby sme mohli takúto situáciu vyriešiť, vložíme do obrazu implementátorov JavaScriptu.
Čo sú vykonávatelia JavaScriptu?
Rozhranie JavascriptExecutor je súčasťou org.openqa.selenium a implementuje triedu java.lang.Object. JavascriptExecutor predstavuje možnosti na vykonávanie JavaScriptu priamo vo webovom prehliadači. Aby bolo možné spustiť JavaScript, sú pri jeho implementácii poskytnuté určité mechanizmy vo forme metód spolu s konkrétnou sadou parametrov.
Metódy
executeScript (reťazcový skript, args)
Ako naznačuje názov metódy, vykoná JavaScript v rámci aktuálneho okna, výstrahy, rámca atď. (Okno, na ktoré sa inštancia WebDriver momentálne zameriava)
executeAsyncScript (reťazcový skript, args)
Ako naznačuje názov metódy, vykoná JavaScript v rámci aktuálneho okna, výstrahy, rámca atď. (Okno, na ktoré sa inštancia WebDriver momentálne zameriava)
Parametre a príkaz na import sú spoločné pre obidve metódy vykonávateľa.
Parametre
Skript - skript, ktorý sa má vykonať
Argument - parametre, ktoré skript vyžaduje na svoje spustenie (ak existujú)
Vyhlásenie o dovoze
Aby sme mohli používať JavascriptExecutors v našich testovacích skriptoch, musíme importovať balík pomocou nasledujúcej syntaxe:
import org.openqa.selenium.JavascriptExecutor;
Vzorový kód
# 1) Kliknutie na webový prvok
// Locating the web element using id WebElement element = driver.findElement(By.id('id of the webelement')); // Instantiating JavascriptExecutor JavascriptExecutor js = (JavascriptExecutor)driver; // Clicking the web element js.executeScript('arguments(0).click();', element);
# 2) Písanie do textového poľa
// Instantiating JavascriptExecutor JavascriptExecutor js = (JavascriptExecutor)driver; // Typing the test data into Textbox js.executeScript('document.getElementById(‘id of the element’).value=’test data’;”);
# 3) Posúvanie nadol, kým sa webový prvok nenachádza v zobrazení
WebElement element=driver.findElement(By.xpath('//input(contains(@value,'Save'))')); // Instantiating the javascriptExecutor and scrolling into the view in the single test step ((JavascriptExecutor)driver).executeScript('arguments(0).scrollIntoView(true);',element);
Môžete nájsť rôzne ďalšie spôsoby písania kódu pre prístup k JavascriptExecutors.
Prístup k viacerým prvkom v zozname
Občas sa môžeme stretnúť s prvkami rovnakého typu, ako sú viaceré hypertextové odkazy, obrázky atď., Usporiadané do zoradeného alebo neusporiadaného zoznamu. Preto má absolútny zmysel zaoberať sa takýmito prvkami pomocou jediného kódu, čo sa dá dosiahnuť pomocou WebElement List. Na snímke obrazovky nižšie nájdete informácie o prvkoch, o ktorých hovorím.
Na obrázku vyššie vidíme, že rôzni poskytovatelia služieb patria do nezoradeného zoznamu. Overenie klikateľnosti a viditeľnosti týchto prvkov je možné vykonať pomocou jediného kódu pomocou zoznamu prvkov.
Vyhlásenie o dovoze
Aby sme mohli v našich testovacích skriptoch používať zoznam WebElement, musíme balíček importovať pomocou nasledujúcej syntaxe:
import java.util.List;
Vzorový kód
ako zostaviť bránu firewall pre Windows
// Storing the list List serviceProviderLinks = driver.findElements(By.xpath('//div(@id='ServiceProvider')//ul//li')); // Fetching the size of the list int listSize = serviceProviderLinks.size(); for (int i=0; iExistuje niekoľko požiadaviek, podľa ktorých je možné pomocou zoznamov overiť prvky pomocou vhodných zmien implementácie.
Spracovanie udalostí klávesnice a myši
Spracovanie udalostí na klávesnici
Ako už bolo povedané skôr, existuje n počet spôsobov, ako sa vysporiadať s rovnakým vyhlásením o probléme v rôznych kontextoch.
Preto niekedy vzniká potreba vysporiadať sa s problémom zmenou konvenčnej stratégie rokovania s pokročilejšou stratégiou. Bol som svedkom prípadov, keď som nedokázal vyriešiť výstrahy a vyskakovacie okná atď. Príkazmi selénu, takže som sa musel rozhodnúť pre rôzne pomocné programy Java, aby som to zvládol pomocou ťahov klávesnice a udalostí myši.
Trieda robotov je jednou z takýchto možností na vykonávanie udalostí klávesnice a myši.
Pochopme koncept pomocou scenára a jeho implementácie.
Scenár:
Zostavme si situáciu, keď sa na obrazovke objaví nepotrebné vyskakovacie okno, ktoré nie je možné prijať alebo zavrieť pomocou výstražného rozhrania, takže jedinou múdrou možnosťou, ktorú nám zostáva, je zatvorenie okna pomocou klávesových skratiek - „Alt + medzerník + C“ . Pozrime sa, ako zatvoríme kontextové okno pomocou triedy robotov.
Pred zahájením implementácie by sme mali importovať potrebný balík, aby sme mohli v našom testovacom skripte používať triedu Robot.
Vyhlásenie o dovoze
import java.awt.Robot;
Vzorový kód
// Instantiating Robot class Robot rb =new Robot(); // Calling KeyPress event rb.keyPress(KeyEvent.VK_ALT); rb.keyPress(KeyEvent.VK_SPACE); rb.keyPress(KeyEvent.VK_C); // Calling KeyRelease event rb.keyRelease(KeyEvent.VK_C); rb.keyRelease(KeyEvent.VK_SPACE); rb.keyRelease(KeyEvent.VK_ALT);
Triedu robotov možno tiež použiť na spracovanie udalostí myši, ale pozrime sa teraz na možnosti selénu na spracovanie udalostí myši.
Riešenie myších udalostí
WebDriver ponúka širokú škálu nástrojov na interakciu, ktoré môže používateľ využiť na automatizáciu udalostí myši a klávesnice. Action Interface je jeden z takýchto nástrojov, ktorý simuluje interakcie jedného používateľa.
Boli by sme teda svedkami toho, ako akčné rozhranie myši umiestni kurzor myši na rozbaľovaciu ponuku, ktorá potom otvorí zoznam možností v ďalšom scenári.
Scenár:
- Umiestnite kurzor myši na rozbaľovaciu ponuku
- Kliknite na jednu z položiek v možnostiach zoznamu
Vyhlásenie o dovoze
importovať org.openqa.selenium.interaction.Actions;
Vzorový kód
c otázky a odpovede na programové pohovory s vysvetleniami pdf
// Instantiating Action Interface Actions actions= new Actions(driver); // howering on the dropdown actions.moveToElement(driver.findElement(By. id ('id of the dropdown'))).perform(); // Clicking on one of the items in the list options WebElement subLinkOption=driver.findElement(By.id('id of the sub link')); subLinkOption.click();
Záver
V tomto tutoriáli sme diskutovali o niektorých pokročilých témach týkajúcich sa efektívneho skriptovania a riešenia scenárov, v ktorých je používateľ povinný spracovávať udalosti myši a klávesnice. Diskutovali sme tiež o tom, ako uložiť viac ako jeden webový prvok do zoznamu. Dúfam, že by ste boli schopní tieto prekážky vyriešiť, ak by sa vyskytli.
Nasledujúci tutoriál # 28 : Pre nadchádzajúci tutoriál v sérii by sme diskutovali o koncept testovania databázy pomocou Selenium WebDriver . Boli by sme svedkami mechanizmu pripojenia k databáze, zasiahnutia selénových dotazov a načítania výsledkov pomocou kódu Selenium WebDriver Code.
Odporúčané čítanie
- Úvod do softvéru Selenium WebDriver - Výučba selénu č. 8
- Ladenie selénových skriptov pomocou denníkov (výučba Log4j) - výučba selénu č. 26
- 30+ najlepších návodov na selén: Naučte sa selén na skutočných príkladoch
- Výukový program Cucumber Selenium: Cucumber Java Selenium WebDriver Integration
- Ako nájsť prvky v prehliadačoch Chrome a IE na vytváranie skriptov selénu - selénský tutoriál # 7
- Implementácia nášho prvého skriptu WebDriver - výučba selénu WebDriver č. 10
- Celé nastavenie a inštalácia WebDriver s výučbou Eclipse - Selenium č. 9
- Vytváranie generík a testovacích súprav - selén, návod č. 22