efficient selenium scripting
V předchozím kurzu jsme probrali technické důsledky při implementaci protokolování v rámci . Diskutovali jsme nástroj log4j na délku. Diskutovali jsme o základních komponentách, které tvoří log4j z hlediska použitelnosti. S Appenders and layouts, a user is leveraged to choose the desired logging format / pattern and the data source / location.
V aktuálním 27. výukovém programu v tomto komplexní bezplatná online školení selenu , posunuli bychom naše zaměření směrem k několika triviálním přesto důležitá témata to by nás vedlo k řešení některých opakujících se problémů. Můžeme nebo nemusíme je používat při každodenním skriptování, ale z dlouhodobého hlediska by byly užitečné.
Bychom diskutovat o některých pokročilých konceptech, kde bychom se zabývali událostmi myši a klávesnice, přístup k více odkazům implementací seznamů . Proč tedy nezačneme a o těchto tématech krátce diskutujeme pomocí vhodných scénářů a úryvků kódu.
cisco networking rozhovor otázky a odpovědi pdf
Co se naučíte:
- Realizátoři JavaScriptu
- Přístup k více prvkům v seznamu
- Zpracování událostí klávesnice a myši
- Závěr
- Doporučené čtení
Realizátoři JavaScriptu
Při automatizaci testovacího scénáře existují určité akce, které se stanou nedílnou součástí testovacích skriptů.
Může jít o tyto akce:
- Kliknutí na tlačítko, hypertextový odkaz atd.
- Psaní do textového pole
- Posouvání svisle nebo vodorovně, dokud se požadovaný objekt nezobrazí
- A mnohem víc
Nyní je z dřívějších výukových programů zřejmé, že nejlepším způsobem, jak automatizovat takové akce, je použití selenových příkazů.
Ale co když příkazy selenu nefungují?
Ano, je naprosto možné, že základní a základní příkazy selenu v určitých situacích nefungují.
To znamená, že abychom mohli takovou situaci vyřešit, vložíme do obrazu implementátory jazyka JavaScript.
Co jsou to spouštěči JavaScriptu?
Rozhraní JavascriptExecutor je součástí org.openqa.selenium a implementuje třídu java.lang.Object. JavascriptExecutor představuje možnosti spuštění JavaScriptu přímo ve webovém prohlížeči. Aby bylo možné spustit JavaScript, jsou při jeho implementaci poskytnuty určité mechanismy ve formě metod spolu se specifickou sadou parametrů.
Metody
executeScript (řetězcový skript, args)
Jak název metody napovídá, provede JavaScript v aktuálním okně, výstraze, rámci atd. (Okno, na které se instance WebDriver aktuálně zaměřuje)
executeAsyncScript (řetězcový skript, args)
Jak název metody napovídá, provede JavaScript v aktuálním okně, výstraze, rámci atd. (Okno, na které se instance WebDriver aktuálně zaměřuje)
Parametry a příkaz import jsou společné pro obě metody prováděcího programu.
testovací případy pro webové aplikace v manuálním testování
Parametry
Skript - skript, který se má provést
Argument - parametry, které skript vyžaduje pro své provedení (pokud existují)
Prohlášení o importu
Abychom mohli v našich testovacích skriptech používat JavascriptExecutors, musíme balíček importovat pomocí následující syntaxe:
import org.openqa.selenium.JavascriptExecutor;
Ukázkový kód
# 1) Kliknutí na webový prvek
// 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) Psaní do textového pole
// Instantiating JavascriptExecutor JavascriptExecutor js = (JavascriptExecutor)driver; // Typing the test data into Textbox js.executeScript('document.getElementById(‘id of the element’).value=’test data’;”);
# 3) Posouvání dolů, dokud není webový prvek 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 najít různé další způsoby psaní kódu pro přístup k JavascriptExecutors.
Přístup k více prvkům v seznamu
Občas se můžeme setkat s prvky stejného typu, jako je několik hypertextových odkazů, obrázků atd. Uspořádaných do seřazeného nebo neuspořádaného seznamu. Dává tedy absolutní smysl zabývat se takovými prvky jediným kusem kódu, což lze provést pomocí WebElement List. Níže uvedený snímek obrazovky vám pomůže porozumět prvkům, o kterých mluvím.
Na obrázku výše vidíme, že různí poskytovatelé služeb patří do neuspořádaného seznamu. Ověření klikatelnosti a viditelnosti těchto prvků lze tedy provést pomocí jednoho kusu kódu pomocí seznamu prvků.
Prohlášení o importu
Abychom mohli v našich testovacích skriptech použít seznam WebElement, musíme balíček importovat pomocí následující syntaxe:
import java.util.List;
Ukázkový kód
// 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 několik požadavků, podle nichž lze seznamy použít k ověření prvků pomocí vhodných změn implementace.
Zpracování událostí klávesnice a myši
Zpracování událostí na klávesnici
Jak již bylo řečeno dříve, existuje n počet způsobů řešení stejného problému v různých kontextech.
Někdy tedy vyvstává nutnost vypořádat se s problémem změnou konvenční strategie obchodování s pokročilejší strategií. Byl jsem svědkem případů, kdy jsem se nemohl vypořádat s výstrahami a vyskakováním atd. Pomocí příkazů selenu, takže jsem se musel rozhodnout pro různé nástroje Java, aby se s nimi vypořádaly pomocí tahů klávesnice a událostí myši.
Třída robotů je jednou z těchto možností k provádění událostí klávesnice a myši.
Pojďme pochopit koncept pomocí scénáře a jeho implementace.
Scénář:
Pojďme se setkat se situací, kdy se na obrazovce objeví zbytečné vyskakovací okno, které nelze přijmout nebo odmítnout pomocí výstražného rozhraní, takže jedinou moudrou možností, kterou nám zbývá, je zavřít okno pomocí klávesových zkratek - „Alt + mezerník + C“ . Uvidíme, jak zavřeme vyskakovací okno pomocí třídy robota.
Před zahájením implementace bychom měli importovat potřebný balíček, abychom mohli v našem testovacím skriptu používat třídu Robot.
Prohlášení o importu
importovat java.awt.Robot;
Ukázkový 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);
Třídu robotů lze také použít ke zpracování událostí myši, ale pojďme se zde podívat na možnosti selenu zpracovávat události myši.
Zpracování myších událostí
WebDriver nabízí širokou škálu obslužných nástrojů, které může uživatel využít k automatizaci událostí myši a klávesnice. Action Interface je jeden takový nástroj, který simuluje interakce jednoho uživatele.
Byli bychom tedy svědky toho, že akční rozhraní se vznáší myší na rozevírací seznam, který pak otevře seznam možností v dalším scénáři.
Scénář:
- Umístěte ukazatel myši na rozevírací nabídku
- Klikněte na jednu z položek v možnostech seznamu
Prohlášení o importu
importovat org.openqa.selenium.interaction.Actions;
Ukázkový kód
síťové řešení potíží s rozhovorem otázky a odpovědi 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ávěr
V tomto kurzu jsme diskutovali o některých pokročilých tématech souvisejících s efektivním skriptováním a řešením scénářů, kde je uživatel povinen zpracovávat události myši a klávesnice. Také jsme diskutovali o tom, jak uložit více než jeden webový prvek do seznamu. Doufám, že byste byli schopni tyto překážky vyřešit, pokud k nim dojde.
Další výuka # 28 : Pro nadcházející výukový program v seriálu bychom diskutovali o koncept testování databáze pomocí Selenium WebDriver . Byli bychom svědky mechanismu připojení k databázi, zasažení selenových dotazů a načítání výsledků prostřednictvím kódu Selenium WebDriver Code.
Doporučené čtení
- Úvod do selenu WebDriver - Selenium Tutorial # 8
- Ladění selenových skriptů pomocí protokolů (výuka Log4j) - výuka selenu č. 26
- 30+ nejlepších návodů na selen: Naučte se selen se skutečnými příklady
- Cucumber Selenium Tutorial: Cucumber Java Selenium WebDriver Integration
- Jak najít prvky v prohlížečích Chrome a IE pro vytváření skriptů selenu - výuka selenu č. 7
- Implementace našeho prvního skriptu WebDriver - výuka selenu WebDriver # 10
- Úplné nastavení a instalace WebDriveru s Eclipse - výuka selenu č. 9
- Vytváření generik a testů - výuka selenu č. 22