Selenium Core Extensions (User-Extensions.js)

Abychom porozumฤ›li rozลกรญล™enรญm, nejprve pochopรญme tล™i pilรญล™e selenovรฉho IDE

  1. Akce: Jakou operaci provรกdรญte na obrazovce uลพivatelskรฉho rozhranรญ

    Selenium Rozลกรญล™enรญ jรกdra

  2. Hodnotitelรฉ/Assertion: Jakรฉ ovฤ›ล™enรญ provรกdรญte na datech, kterรก zรญskรกte z uลพivatelskรฉho rozhranรญ

Selenium Rozลกรญล™enรญ jรกdra

  1. Strategie lokรกtoru: Jak najdeme prvek v uลพivatelskรฉm rozhranรญ.

Selenium Rozลกรญล™enรญ jรกdra

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.

Poลพadavek na vytvoล™enรญ Selenium uลพivatelskรฉ rozลกรญล™enรญ

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ฤ›.

Vytvoล™it uลพivatelskรฉ rozลกรญล™enรญ

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?

  1. Pล™ejรญt Selenium IDE

    Kliknฤ›te na Moลพnosti -> Moลพnostiโ€ฆ

Pouลพijte novฤ› vytvoล™enรฉ zรกkladnรญ rozลกรญล™enรญ

  1. V ฤรกsti Obecnรฉ vyberte umรญstฤ›nรญ novฤ› vytvoล™enรฉho Selenium Rozลกรญล™enรญ jรกdra

    Pouลพijte novฤ› vytvoล™enรฉ zรกkladnรญ rozลกรญล™enรญ

  2. Klepnฤ›te na OK a restartujte Selenium IDE

Pouลพijte novฤ› vytvoล™enรฉ zรกkladnรญ rozลกรญล™enรญ

  1. Pล™รญponu najdete v seznamu pล™รญkazลฏ

Pouลพijte novฤ› vytvoล™enรฉ zรกkladnรญ rozลกรญล™enรญ

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.

stรกhnฤ›te Selenium Core Extension pouลพitรฉ v tomto kurzu

Shrลˆte tento pล™รญspฤ›vek takto: