Selenium Core Extensions (User-Extensions.js)

Inhoudsopgave:

Anonim

Om extensies te begrijpen, moeten we eerst de drie pijlers van selenium IDE begrijpen

  1. Actie: welke bewerking u uitvoert op het UI-scherm

  2. Beoordelaars / bewering: welke verificatie u uitvoert op gegevens die u uit de gebruikersinterface krijgt

  1. Locator-strategie: hoe kunnen we het element in de gebruikersinterface vinden.

Nu heeft Selenium IDE een zeer volwassen bibliotheek met tal van acties, beweringen / assessoren en locatorstrategieën.

Maar soms moeten we er wat meer functionaliteit aan toevoegen voor onze projectvereisten. In die situatie kunnen we deze bibliotheek uitbreiden door onze aangepaste extensies toe te voegen. Deze aangepaste extensies worden 'Gebruikersextensie' genoemd.

We hebben bijvoorbeeld een actie nodig die de tekst naar hoofdletters kan converteren voordat deze in een webelement wordt ingevuld. U kunt deze actie niet vinden in de standaardactiebibliotheek. In dat geval kunt u uw eigen 'User Extension' aanmaken. In deze zelfstudie leren we hoe u een gebruikersextensie kunt maken om tekst naar hoofdletters te converteren

Vereiste om een ​​Selenium-gebruikersextensie te maken:

Om een ​​gebruikersextensie voor Selenium IDE te maken, moeten we het basisconcept van JavaScript- en Java Script-prototypeobjectconcept kennen.

Om uw gebruikerextensie te maken, moet u Java-scriptmethoden maken en deze toevoegen aan het prototype van het selenium-object en het prototype van het PageBot-object.

Hoe herkent Selenium IDE User Extension?

Na het toevoegen van een gebruikersextensie aan Selenium IDE wanneer we Selenium IDE starten, worden al deze extensies in JavaScript-prototype geladen en herkent Selenium IDE ze bij hun naam.

Hoe u een gebruikersextensie maakt

Stap 1) Actie - alle acties worden gestart met "do", dwz als de actie voor tekst in hoofdletters is, is de naam doTextUpperCase. Wanneer we deze actiemethode toevoegen in Selenium IDE, maakt Selenium IDE zelf een wachtmethode voor deze actie. Dus in dit geval, wanneer we de actie doTextUpperCase maken , zal Selenium IDE een overeenkomstige wachtfunctie maken als TextUpperCaseAndWait . Het kan twee parameters accepteren

Voorbeeld: tekstactie in hoofdletters

Selenium.prototype.doTextUpperCase = functie (locator, tekst) {// Hier is findElement zelf in staat om alle typen locator aan te pakken (xpath, css, naam, id, className), we hoeven alleen de locatortekst door te gevenvar element = this.page (). findElement (locator);// Maak de tekst die u wilt typentext = text.toUpperCase ();// Vervang de elementtekst door de nieuwe tekstthis.page (). replaceText (element, tekst);​

Stap 2) Beoordelaars / bewering - Alle beoordelaars die zijn geregistreerd in het prototype van een seleniumobject krijgen een voorvoegsel

door "get" of "is" Ex. getValueFromCompoundTable, isValueFromCompoundTable. Het kan twee parameters accepteren, één voor target en één voor waarde veld in testcase.

Voor elke beoordelaar zullen er overeenkomstige verificatiefuncties zijn, voorafgegaan door "verifiëren", "assert" en het wachtfunctie-voorvoegsel door "waitFor"

Voorbeeld: voor beoordelaars van tekst in hoofdletters

Selenium.prototype.assertTextUpperCase = functie (locator, tekst) {// Alle locator-strategieën worden automatisch afgehandeld door "findElement"var element = this.page (). findElement (locator);// Maak de tekst om te verifiërentext = text.toUpperCase ();// Haal de werkelijke elementwaarde opvar actualValue = element.value;// Zorg ervoor dat de werkelijke waarde overeenkomt met de verwachteAssert.matches (verwachteValue, actualValue);​Selenium.prototype.isTextEqual = functie (locator, tekst) {retourneer this.getText (locator) .value === tekst;​Selenium.prototype.getTextValue = functie (locator, tekst) {retourneer this.getText (locator) .value;​

Stap 3) Locatorstrategie - Als we onze eigen functie willen creëren om een ​​element dan te lokaliseren

we moeten het PageBot-prototype uitbreiden met een functie met het voorvoegsel "locationsElementBy."

Er zijn twee parameters nodig, de eerste is de locator-string en de tweede is het document

waar het moet worden doorzocht.

Voorbeeld: voor tekstzoeker in hoofdletters

// Het "inDocument" is een document dat u zoekt.PageBot.prototype.locateElementByUpperCase = functie (tekst, inDocument) {// Maak de tekst om naar te zoekenvar verwachteValue = text.toUpperCase ();// Loop door alle elementen, op zoek naar degene die dat wel hebben// een waarde === onze verwachte waardevar allElements = inDocument.getElementsByTagName ("*");// Deze ster '*' is een soort reguliere expressie die door elk element gaat (in HTML DOM heeft elk element zeker een tagnaam zoals , ,

, , ,
enz.). Hier is ons motief om een ​​element te vinden dat overeenkomt met de tekst in hoofdletters die we hebben gepasseerd, dus we zullen het zoeken met alle elementen en als we een match krijgen, hebben we het juiste webelement.voor (var i = 0; i

Hoe een nieuw gemaakte kernextensie te gebruiken?

  1. Ga naar Selenium IDE

    Klik op Opties -> Opties ...

  1. Selecteer in het gedeelte Algemeen de locatie van de nieuw gemaakte Selenium Core-extensie

  2. Klik op OK en start Selenium IDE opnieuw

  1. U vindt de extensie in de lijst met opdrachten

Hier is een lijst met populaire extensies / plug-ins die worden gebruikt in Selenium IDE

Naam Doel
Favorieten Om een ​​testsuite als favoriet te markeren en met één klik uit te voeren
Flex Piloot X Voor op Flex gebaseerde automatisering
FlexMonkium Voor opnemen en afspelen op basis van Adobe Flex Testen in Selenium IDE
Bestandsregistratie Voor het opslaan van logboeken in een bestand
Flow Control Om de stroom van de testuitvoering te controleren
Markeer elementen Om een ​​webbediening te markeren
Impliciet wachten Om een ​​bepaalde tijdslimiet op een element te wachten
ScreenShot bij mislukken Maak een screenshot bij een storing
Test resultaten Bewaar Testcase-resultaat voor een testsuite met één klik

Je kunt deze allemaal en nog veel meer krijgen van de downloadsectie van de officiële SeleniumHQ-site

http://docs.seleniumhq.org/download/

Overzicht:

  • Er zijn drie delen van Selenium IDE, Action, Assessors / Assertion, Locator-strategie.
  • Er wordt een gebruikersextensie gemaakt wanneer Selenium IDE niet voldoet aan de huidige vereiste.
  • Om een ​​gebruikersextensie te maken, is het vereist om javascript toe te voegen aan het object-prototype van selenium.
  • Na het maken van de extensie, is het vereist om deze toe te voegen aan Selenium IDE en IDE opnieuw te starten.

Download de Selenium Core-extensie die in deze zelfstudie wordt gebruikt