Selenium Core Extensions (User-Extensions.js)
För att förstå tillägg, låt oss först förstå de tre pelarna i selen IDE
- Åtgärd: Vilken operation du utför på UI-skärmen
- Bedömare/påstående: Vilken verifiering du gör på data du får från UI
- Locator Strategy: Hur kan vi hitta elementet i UI.
Nu, Selenium IDE har ett mycket moget bibliotek med massor av Actions, Assertion/Assessors och Locator Strategies.
Men ibland behöver vi lägga till lite mer funktionalitet för våra projektkrav. I den situationen kan vi utöka det här biblioteket genom att lägga till våra anpassade tillägg. Dessa anpassade tillägg kallas "användartillägg".
Till exempel behöver vi en åtgärd som kan konvertera texten till versaler innan vi fyller i den i ett webbelement. Du kan inte hitta den här åtgärden i standardbiblioteket för åtgärd. I så fall kan du skapa ditt eget "användartillägg". I den här handledningen kommer vi att lära oss hur man skapar användartillägg för att konvertera text till versaler
Krav för att skapa Selenium användartillägg
För att skapa användartillägg för Selenium IDE måste vi känna till det grundläggande konceptet JavaScript och Java Skript prototyp objekt koncept.
För att skapa ditt användartillägg måste du skapa Java skriptmetoder och lägg till dem i selenobjektprototypen och PageBot-objektprototypen.
Hur Selenium IDE känner igen User Extension?
Efter att ha lagt till användartillägg till Selenium IDE när vi börjar Selenium IDE, alla dessa tillägg i javascript-prototypen laddas, och Selenium IDE känner igen dem vid deras namn.
Hur man skapar användartillägg
Steg 1) Åtgärd– alla åtgärder startas av "do", dvs om åtgärden är för versaler kommer dess namn att bli doTextUpperCase. När vi lägger till denna åtgärdsmetod i Selenium SDI, Selenium IDE kommer själv att skapa en väntemetod för denna åtgärd. Så i det här fallet när vi skapar doTextUpperCase handling, Selenium IDE kommer att skapa en motsvarande väntefunktion som TextUpperCaseAndWait. Den kan acceptera två parametrar
Exempel: Textåtgärd med versaler
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); };
Steg 2) Bedömare/påstående- Alla bedömare registrerade i selenobjektprototyp kommer att ha prefix
av "get" eller "är" Ex. getValueFromCompoundTable , isValueFromCompoundTable . Den kan acceptera två parametrar, en för mål och en annan för värdefält i testfall.
För varje Assessor kommer det att finnas motsvarande verifieringsfunktioner med prefixet "verify", "assert" och väntefunktionsprefixet med "waitFor"
Exempel: För textbedömare i versaler
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; };
Steg 3) Lokaliseringsstrategi- Om vi vill skapa en egen funktion för att lokalisera ett element då
vi måste utöka PageBot-prototypen med en funktion med prefixet "locateElementBy."
Det kommer att krävas två parametrar, den första kommer att vara lokaliseringssträngen och den andra kommer att vara dokumentet
där den behöver sökas.
Exempel: För versaler för textsökning
// 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; };
Hur använder man nyskapad kärntillägg?
- Gå till Selenium IDE
Klicka på Alternativ -> Alternativ...
- I avsnittet Allmänt väljer du platsen för den nyskapade Selenium Core Extension
- Klicka på OK och starta om Selenium IDE
- Du hittar tillägget i kommandolistan
Här är en lista över populära tillägg/plugin-program som används i Selenium IDE
Namn | Syfte |
---|---|
Favoriter | För att markera en testsvit som favorit och köra dem med ett klick |
Flex Pilot X | För Flexbaserad automation |
FlexMonkium | För Adobe Flex-baserad inspelning och uppspelning Testning in Selenium IDE |
Filloggning | För att spara loggar i en fil |
Flödeskontroll | För att kontrollera testexekveringsflödet |
Markera element | För att markera en webbkontroll |
Implicit vänta | Att vänta på ett element under en viss tidsgräns |
Skärmdump vid misslyckande | Ta en skärmdump på misslyckande |
Testresultat | Spara Testfall resultat för en testsvit med ett klick |
Du kan få alla dessa och många fler från SeleniumHQ officiella sajts nedladdningssektion
http://docs.seleniumhq.org/download/
Sammanfattning
- Det finns tre delar av Selenium IDE, Action, Assessors/Assertion, Locator-strategi.
- Användartillägg skapas, när Selenium IDE uppfyller inte det nuvarande kravet.
- För att skapa användartillägg krävs att man lägger till javascript till seleniums objektprototyp.
- Efter att tillägget har skapats måste du lägga till det Selenium IDE och starta om IDE.
ladda ner Selenium Core Extension som används i denna handledning