Selenium Kjerneutvidelser (User-Extensions.js)
For å forstå utvidelser, la oss først forstå de tre pilarene i selen IDE
- Handling: Hvilken operasjon du utfører på UI-skjermen
- Assessorer/påstand: Hvilken verifisering du gjør på data du får fra UI
- Locator Strategy: Hvordan kan vi finne elementet i UI.
Nå, Selenium IDE har et veldig modent bibliotek med mange handlinger, påstander/bedømmere og lokaliseringsstrategier.
Men noen ganger må vi legge til litt mer funksjonalitet til det for våre prosjektkrav. I den situasjonen kan vi utvide dette biblioteket ved å legge til våre tilpassede utvidelser. Disse tilpassede utvidelsene kalles "Brukerutvidelse".
For eksempel trenger vi en handling som kan konvertere teksten til store bokstaver før vi fyller den inn i et webelement. Du finner ikke denne handlingen i standardhandlingsbiblioteket. I slike tilfeller kan du opprette din egen "Brukerutvidelse". I denne opplæringen lærer vi hvordan du oppretter brukerutvidelse for å konvertere tekst til store bokstaver
Krav for å lage Selenium brukerutvidelse
For å lage brukerutvidelse for Selenium IDE, må vi vite det grunnleggende konseptet JavaScript og Java Skriptprototypeobjektkonsept.
For å opprette brukerutvidelsen din må du opprette Java skriptmetoder og legg dem til selenobjektprototypen og PageBot-objektprototypen.
Hvordan Selenium IDE gjenkjenner brukerutvidelse?
Etter å ha lagt til brukerutvidelse til Selenium IDE når vi starter Selenium IDE, alle disse utvidelsene i javascript-prototypen blir lastet, og Selenium IDE gjenkjenner dem ved navn.
Hvordan lage brukerutvidelse
Trinn 1) Handling– alle handlinger startes med "do", dvs. hvis handlingen er for store bokstaver, vil navnet være doTextUpperCase. Når vi legger til denne handlingsmetoden i Selenium SDI, Selenium IDE vil selv lage en ventemetode for denne handlingen. Så i dette tilfellet når vi lager doTextUpperCase handling, Selenium IDE vil lage en tilsvarende ventefunksjon som TextUpperCaseAndWait. Den kan godta to parametere
Eksempel: Teksthandling med store bokstaver
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); };
Trinn 2) Bedømmere/påstand- Alle bedømmere som er registrert i selenobjektprototype vil bli prefiks
ved "get" eller "er" Eks. getValueFromCompoundTable , isValueFromCompoundTable . Den kan godta to parametere, en for mål og andre for verdifelt i testtilfelle.
For hver Assessor vil det være korresponderende verifikasjonsfunksjoner foran med "verify", "assert" og ventefunksjonsprefikset med "waitFor"
Eksempel: For tekstbedømmere i store bokstaver
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; };
Trinn 3) Lokaliseringsstrategi- Hvis vi ønsker å lage vår egen funksjon for å finne et element da
vi må utvide PageBot-prototypen med en funksjon med prefikset "locateElementBy."
Det vil ta to parametere, den første vil være lokaliseringsstrengen og den andre vil være dokumentet
hvor det må søkes.
Eksempel: For tekstsøker for store bokstaver
// 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 bruke nyopprettet kjerneutvidelse?
- Gå til Selenium IDE
Klikk på Alternativer -> Alternativer...
- I seksjonen Generelt velger du plasseringen til den nyopprettede Selenium Kjerneforlengelse
- Klikk OK og start på nytt Selenium IDE
- Du finner utvidelsen i kommandolisten
Her er en liste over populære utvidelser/plugin-moduler som brukes i Selenium IDE
Navn | Formål |
---|---|
Favoritter | For å merke en testpakke som favoritt og utføre dem med ett klikk |
Flex Pilot X | For Flex-basert automatisering |
FlexMonkium | For Adobe Flex-basert opptak og avspilling Testing in Selenium IDE |
Fillogging | For å lagre logger i en fil |
Flytkontroll | For å kontrollere flyten av testutførelse |
Marker elementer | For å markere en webkontroll |
Implisitt vent | Å vente på et element for en viss tidsbegrensning |
Skjermbilde ved feil | Ta et skjermbilde ved feil |
Testresultater | Spar Testsak resultat for en testpakke med ett klikk |
Du kan få alle disse og mange flere fra SeleniumHQ offisielle nettsteds nedlastingsseksjon
http://docs.seleniumhq.org/download/
Sammendrag
- Det er tre deler av Selenium IDE, Action, Assessors/Assertion, Locator-strategi.
- Brukerutvidelse opprettes, når Selenium IDE oppfyller ikke gjeldende krav.
- For å lage brukerutvidelse er det nødvendig å legge til javascript til selens objektprototype.
- Etter opprettelse av utvidelse, er det nødvendig å legge den til Selenium IDE og start IDE på nytt.
Last ned Selenium Core Extension brukt i denne opplæringen