Abychom pochopili rozšíření, pojďme nejprve porozumět třem pilířům IDE selenu
- Akce: Jakou operaci provádíte na obrazovce uživatelského rozhraní
- Posuzovatelé / tvrzení: Jaké ověření provedete u dat, která získáte z uživatelského rozhraní
- Strategie lokátoru: Jak můžeme najít prvek v uživatelském rozhraní.
Selenium IDE má nyní velmi vyspělou knihovnu se spoustou strategií akcí, tvrzení / posuzovatelů a lokátorů.
Někdy však potřebujeme přidat další funkce pro naše požadavky na projekt. V této situaci můžeme tuto knihovnu rozšířit přidáním vlastních rozšíření. Tato vlastní rozšíření se nazývají „User Extension“.
Například potřebujeme 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í „User Extension“. V tomto kurzu se naučíme, jak vytvořit uživatelské rozšíření pro převod textu na velká písmena
Požadavek na vytvoření uživatelského rozšíření Selenium:
Chcete-li vytvořit uživatelské rozšíření pro IDE selenu, potřebujeme znát základní koncept konceptu JavaScriptu a prototypu objektu Java Script.
Chcete-li vytvořit uživatelskou příponu, musíte vytvořit metody skriptu Java a přidat je do prototypu objektu selenu a prototypu objektu PageBot.
Jak Selenium IDE rozpoznává uživatelské rozšíření?
Po přidání User Extension do Selenium IDE při spuštění Selenium IDE se načtou všechna tato rozšíření v prototypu javascript a Selen IDE je rozpozná podle názvu.
Jak vytvořit uživatelskou příponu
Krok 1) Akce - všechny akce jsou spuštěny „do“, tj. Pokud je akce pro velký text, její název bude doTextUpperCase. Když přidáme tuto metodu akce do IDE Selenium, Selenium IDE samo o sobě vytvoří metodu čekání na tuto akci. Takže v tomto případě, když vytvoříme akci doTextUpperCase , Selenium IDE vytvoří odpovídající funkci čekání jako TextUpperCaseAndWait . Může přijmout dva parametry
Příklad: Akce s velkými písmeny
Selenium.prototype.doTextUpperCase = funkce (lokátor, text) {// Zde findElement je sám schopen zvládnout všechny typy lokátorů (xpath, css, name, id, className), stačí předat text lokátoruvar element = this.page (). findElement (lokátor);// Vytvořte text, který chcete psáttext = text.toUpperCase ();// Nahraďte text prvku novým textemthis.page (). replaceText (prvek, text);};
Krok 2) Hodnotitelé / Assertion- Všichni hodnotitelé registrovaní v prototypu objektu selenu budou mít předponu
pomocí „získat“ nebo „je“ př. Může přijímat dva parametry, jeden pro cílové a druhý pro hodnotové pole v testovacím případu.
U každého hodnotitele budou k dispozici odpovídající ověřovací funkce s předponou „verify“, „assert“ a předponou funkce čekání s „waitFor“
Příklad: Pro hodnotitele textu psaného velkými písmeny
Selenium.prototype.assertTextUpperCase = funkce (lokátor, text) {// Všechny lokační strategie jsou automaticky zpracovány pomocí „findElement“var element = this.page (). findElement (lokátor);// Vytvořte text k ověřenítext = text.toUpperCase ();// Získejte skutečnou hodnotu prvkuvar actualValue = element.value;// Ujistěte se, že skutečná hodnota odpovídá očekávané hodnotěAssert.matches (expectValue, actualValue);};Selenium.prototype.isTextEqual = funkce (lokátor, text) {vrátit this.getText (lokátor). hodnota === text;};Selenium.prototype.getTextValue = funkce (lokátor, text) {vrátit this.getText (locator) .value;};
Krok 3) Strategie lokátoru - Pokud si přejeme vytvořit vlastní funkci k vyhledání prvku, pak
musíme rozšířit prototyp PageBot o funkci s předponou "locateElementBy."
Bude to trvat dva parametry, první bude řetězec lokátoru a druhý bude dokument
kde je třeba ji hledat.
Příklad: Pro vyhledávač velkých písmen
// Dokument „inDocument“ je dokument, který prohledáváte.PageBot.prototype.locateElementByUpperCase = funkce (text, inDocument) {// Vytvořte text, který chcete vyhledatvar expectValue = text.toUpperCase ();// Procházejte všechny prvky a hledejte ty, které mají// a value === naše očekávaná hodnotavar allElements = inDocument.getElementsByTagName ("*");// Tato hvězda '*' je druh regulárního výrazu, který projde každým prvkem (v HTML DOM má každý prvek určitě název značky jako , ,,