Selenium Core Extensions (User-Extensions.js)
Abychom porozumฤli rozลกรญลenรญm, nejprve pochopรญme tลi pilรญลe selenovรฉho IDE
- Akce: Jakou operaci provรกdรญte na obrazovce uลพivatelskรฉho rozhranรญ
- Hodnotitelรฉ/Assertion: Jakรฉ ovฤลenรญ provรกdรญte na datech, kterรก zรญskรกte z uลพivatelskรฉho rozhranรญ
- Strategie lokรกtoru: Jak najdeme prvek v uลพivatelskรฉm rozhranรญ.
Teฤ, Selenium IDE mรก velmi vyspฤlou knihovnu se spoustou akcรญ, tvrzenรญ/hodnotitelลฏ a strategiรญ lokalizace.
Nฤkdy ale potลebujeme pลidat nฤjakou dalลกรญ funkcionalitu pro naลกe projektovรฉ poลพadavky. V takovรฉm pลรญpadฤ mลฏลพeme tuto knihovnu rozลกรญลit pลidรกnรญm naลกich vlastnรญch rozลกรญลenรญ. Tato vlastnรญ rozลกรญลenรญ se nazรฝvajรญ โUลพivatelskรฉ rozลกรญลenรญโ.
Potลebujeme napลรญklad akci, kterรก dokรกลพe pลevรฉst text na velkรก pรญsmena pลed jeho vyplnฤnรญm do webovรฉho prvku. Tuto akci nemลฏลพete najรญt ve vรฝchozรญ knihovnฤ akcรญ. V takovรฉm pลรญpadฤ si mลฏลพete vytvoลit vlastnรญ โUลพivatelskรฉ rozลกรญลenรญโ. V tomto tutoriรกlu se nauฤรญme, jak vytvoลit uลพivatelskรฉ rozลกรญลenรญ pro pลevod textu na velkรก pรญsmena
Poลพadavek na vytvoลenรญ Selenium uลพivatelskรฉ rozลกรญลenรญ
Chcete-li vytvoลit rozลกรญลenรญ uลพivatele pro Selenium IDE, potลebujeme znรกt zรกkladnรญ koncept JavaScรฉnรกล a Java Koncept prototypovรฉho objektu skriptu.
Chcete-li vytvoลit uลพivatelskรฉ rozลกรญลenรญ, musรญte vytvoลit Java skriptovacรญ metody a pลidejte je do prototypu objektu selenu a prototypu objektu PageBot.
Jak Selenium IDE rozpoznรก uลพivatelskรฉ rozลกรญลenรญ?
Po pลidรกnรญ uลพivatelskรฉho rozลกรญลenรญ do Selenium IDE, kdyลพ zaฤneme Selenium IDE, vลกechna tato rozลกรญลenรญ v prototypu javascriptu se naฤtou a Selenium IDE je rozpoznรก podle jejich jmรฉna.
Jak vytvoลit uลพivatelskรฉ rozลกรญลenรญ
Krok 1) Akceโ vลกechny akce se spouลกtฤjรญ โdoโ, tj. pokud je akce na velkรก pรญsmena, bude i jejรญ nรกzev doTextUpperCase. Kdyลพ pลidรกme tuto akฤnรญ metodu Selenium SDI, Selenium IDE samo vytvoลรญ ฤekacรญ metodu pro tuto akci. Tedy v tomto pลรญpadฤ, kdyลพ tvoลรญme doTextUpperCase akce, Selenium IDE vytvoลรญ odpovรญdajรญcรญ funkci ฤekรกnรญ jako TextUpperCaseAndWait. Mลฏลพe pลijmout dva parametry
Pลรญklad: Akce textu s velkรฝmi pรญsmeny
Selenium.prototype.doTextUpperCase = function(locator, text) {
// Here findElement is itself capable to handle all type of locator(xpath,css,name,id,className), We just need to pass the locator text
var element = this.page().findElement(locator);
// Create the text to type
text = text.toUpperCase();
// Replace the element text with the new text
this.page().replaceText(element, text);
};
Krok 2) Hodnotitelรฉ/Prohlรกลกenรญ- Vลกichni posuzovatelรฉ registrovanรญ v prototypu selenovรฉho objektu budou mรญt pลedponu
podle โdostatโ nebo โjeโ Pล. getValueFromCompoundTable , isValueFromCompoundTable . Mลฏลพe pลijmout dva parametry, jeden pro cรญl a druhรฝ pro pole hodnoty v testovacรญm pลรญpadฤ.
Pro kaลพdรฉho hodnotitele budou k dispozici odpovรญdajรญcรญ ovฤลovacรญ funkce s pลedponou โverifyโ, โassetโ a pลedponou funkce ฤekรกnรญ s pลedponou โwaitForโ
Pลรญklad: Pro hodnotitele textu velkรฝch pรญsmen
Selenium.prototype.assertTextUpperCase = function(locator, text) {
// All locator-strategies are automatically handled by "findElement"
var element = this.page().findElement(locator);
// Create the text to verify
text = text.toUpperCase();
// Get the actual element value
var actualValue = element.value;
// Make sure the actual value matches the expected
Assert.matches(expectedValue, actualValue);
};
Selenium.prototype.isTextEqual = function(locator, text) {
return this.getText(locator).value===text;
};
Selenium.prototype.getTextValue = function(locator, text) {
return this.getText(locator).value;
};
Krok 3) Strategie lokรกtoru- Pokud si pลejeme vytvoลit vlastnรญ funkci pro umรญstฤnรญ prvku, pak
potลebujeme rozลกรญลit prototyp PageBot o funkci s pลedponou โlocateElementByโ.
Bude to vyลพadovat dva parametry, prvnรญ bude ลetฤzec lokรกtoru a druhรฝ bude dokument
kde je potลeba hledat.
Pลรญklad: Pro lokรกtor textu velkรฝch pรญsmen
// The "inDocument" is a document you are searching.
PageBot.prototype.locateElementByUpperCase = function(text, inDocument) {
// Create the text to search for
var expectedValue = text.toUpperCase();
// Loop through all elements, looking for ones that have
// a value === our expected value
var allElements = inDocument.getElementsByTagName("*");
// This star '*' is a kind of regular expression it will go through every element (in HTML DOM every element surely have a tag name like<body>,<a>,<h1>,<table>,<tr>,<td> etc. ). Here our motive is to find an element which matched with the Upper Case text we have passed so we will search it with all elements and when we get match we will have the correct web element.
for (var i = 0; i < allElements.length; i++) {
var testElement = allElements[i];
if (testElement.innerHTML && testElement.innerHTML === expectedValue) {
return testElement;
}
}
return null;
};
Jak pouลพรญvat novฤ vytvoลenรฉ rozลกรญลenรญ jรกdra?
- Pลejรญt Selenium IDE
Kliknฤte na Moลพnosti -> Moลพnostiโฆ
- V ฤรกsti Obecnรฉ vyberte umรญstฤnรญ novฤ vytvoลenรฉho Selenium Rozลกรญลenรญ jรกdra
- Klepnฤte na OK a restartujte Selenium IDE
- Pลรญponu najdete v seznamu pลรญkazลฏ
Zde je seznam oblรญbenรฝch rozลกรญลenรญ/plug-inลฏ pouลพรญvanรฝch v Selenium IDE
| Jmรฉno | รฤel |
|---|---|
| Oblรญbenรฉ | Oznaฤit testovacรญ sadu jako oblรญbenou a spustit je jednรญm kliknutรญm |
| Flex Pilot X | Pro automatizaci zaloลพenou na Flex |
| FlexMonkium | Pro nahrรกvรกnรญ a pลehrรกvรกnรญ zaloลพenรฉ na Adobe Flex Testovรกnรญ in Selenium IDE |
| Protokolovรกnรญ souborลฏ | Pro uklรกdรกnรญ protokolลฏ do souboru |
| Flow Control | K ลรญzenรญ toku provรกdฤnรญ testu |
| Zvรฝraznฤte prvky | Chcete-li zvรฝraznit webovรฝ ovlรกdacรญ prvek |
| Implicitnรญ ฤekรกnรญ | ฤekat na prvek po urฤitou dobu |
| Snรญmek obrazovky pลi selhรกnรญ | Udฤlejte snรญmek obrazovky pลi selhรกnรญ |
| Vรฝsledky testลฏ | Uloลพit Testovacรญ pลรญpad vรฝsledek pro testovacรญ sadu jednรญm kliknutรญm |
To vลกe a mnohรฉ dalลกรญ mลฏลพete zรญskat od SeleniumSekce stahovรกnรญ oficiรกlnรญch strรกnek HQ
http://docs.seleniumhq.org/download/
Shrnutรญ
- Existujรญ tลi ฤรกsti Selenium IDE, Akce, Hodnotitelรฉ/Assertion, Strategie lokรกtoru.
- Uลพivatelskรฉ rozลกรญลenรญ je vytvoลeno, kdyลพ Selenium IDE nesplลuje aktuรกlnรญ poลพadavek.
- Pro vytvoลenรญ uลพivatelskรฉho rozลกรญลenรญ je nutnรฉ pลidat javascript do prototypu objektu selenium.
- Po vytvoลenรญ rozลกรญลenรญ je nutnรฉ jej pลidat Selenium IDE a restartujte IDE.









