Selenium Kerneudvidelser (User-Extensions.js)
For at forstå udvidelser, lad os først forstå de tre søjler af selen IDE
- Handling: Hvilken handling du udfører på UI-skærmen
- Assessorer/påstand: Hvilken verifikation du foretager på data, du får fra UI
- Locator Strategy: Hvordan kan vi finde elementet i UI.
Nu Selenium IDE har et meget modent bibliotek med masser af Actions, Assertion/Assessors og Locator Strategies.
Men nogle gange er vi nødt til at tilføje noget mere funktionalitet til det for vores projektkrav. I den situation kan vi udvide dette bibliotek ved at tilføje vores tilpassede udvidelser. Disse brugerdefinerede udvidelser kaldes 'Brugerudvidelse'.
For eksempel har vi brug for en handling, som kan konvertere teksten til store bogstaver, før den udfyldes i et webelement. Du kan ikke finde denne handling i standardhandlingsbiblioteket. I sådanne tilfælde kan du oprette din egen 'Brugerudvidelse'. I denne vejledning lærer vi, hvordan du opretter brugerudvidelse for at konvertere tekst til store bogstaver
Krav til oprettelse Selenium brugerudvidelse
For at oprette brugerudvidelse til Selenium IDE, vi skal kende grundbegrebet JavaScript og Java Script prototype objekt koncept.
For at oprette din brugerudvidelse skal du oprette Java script-metoder og tilføje dem til selenobjektprototypen og PageBot-objektprototypen.
Hvordan Selenium IDE genkender User Extension?
Efter tilføjelse af brugerudvidelse til Selenium IDE når vi starter Selenium IDE, alle disse udvidelser i javascript prototype bliver indlæst, og Selenium IDE genkender dem ved deres navn.
Sådan opretter du brugerudvidelse
Trin 1) Handling– alle handlinger startes med "do", dvs. hvis handlingen er for store bogstaver, vil dens navn være doTextUpperCase. Når vi tilføjer denne handlingsmetode Selenium SDI, Selenium IDE vil selv oprette en ventemetode for denne handling. Så i dette tilfælde, når vi skaber doTextUpperCase handling, Selenium IDE vil oprette en tilsvarende ventefunktion som TextUpperCaseAndWait. Den kan acceptere to parametre
Eksempel: Teksthandling med store bogstaver
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); };
Trin 2) Bedømmere/påstand- Alle bedømmere, der er registreret i selenobjektprototype, vil blive præfikset
ved "få" eller "er" Eks. getValueFromCompoundTable , isValueFromCompoundTable . Den kan acceptere to parametre, en for mål og en anden for værdifelt i testcase.
For hver Assessor vil der være tilsvarende verifikationsfunktioner foran med "verify", "assert" og ventefunktionspræfikset med "waitFor"
Eksempel: For tekstbedømmere med store bogstaver
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; };
Trin 3) Lokaliseringsstrategi- Hvis vi ønsker at oprette vores egen funktion til at lokalisere et element, så
vi skal udvide PageBot-prototypen med en funktion med præfikset "locateElementBy."
Det vil tage to parametre, den første vil være lokaliseringsstrengen og den anden vil være dokumentet
hvor det skal søges.
Eksempel: Til tekstsøgning af store bogstaver
// 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; };
Hvordan bruger man nyoprettet kerneudvidelse?
- Gå til Selenium IDE
Klik på Indstillinger -> Indstillinger...
- I afsnittet Generelt skal du vælge placeringen af den nyoprettede Selenium Kerneudvidelse
- Klik på OK og genstart Selenium IDE
- Du finder udvidelsen i kommandolisten
Her er en liste over populære udvidelser/plug-in, der bruges i Selenium IDE
Navn | Formål |
---|---|
foretrukne | At markere en testsuite som favorit og udføre dem med et enkelt klik |
Flex Pilot X | Til Flex baseret automatisering |
FlexMonkium | Til Adobe Flex-baseret optagelse og afspilning Test in Selenium IDE |
Fillogning | Til at gemme logfiler i en fil |
Flow Kontrol | For at kontrollere testudførelsesflowet |
Fremhæv elementer | For at fremhæve en webkontrol |
Implicit Vent | At vente på et element i en bestemt tidsgrænse |
Skærmbillede ved fejl | Tag et skærmbillede af fejl |
Test resultater | Gem Test sag resultat for en testsuite med et enkelt klik |
Du kan få dem alle og mange flere fra SeleniumHQ's officielle sides downloadsektion
http://docs.seleniumhq.org/download/
Resumé
- Der er tre dele af Selenium IDE, Action, Assessors/Assertion, Locator strategi.
- Brugerudvidelse oprettes, når Selenium IDE opfylder ikke det nuværende krav.
- For at oprette brugerudvidelse er det nødvendigt at tilføje javascript til seleniums objektprototype.
- Efter oprettelse af udvidelse er det nødvendigt at tilføje det Selenium IDE og genstart IDE.
Download Selenium Core Extension brugt i denne selvstudie