Selenium Osnovna proširenja (User-Extensions.js)
Da bismo razumjeli proširenja, prvo ćemo razumjeti tri stupa selenium IDE
- Radnja: koju operaciju izvodite na UI zaslonu
- Procjenitelji/Tvrdnja: Koju provjeru provodite na podacima koje dobijete iz korisničkog sučelja
- Strategija lokatora: Kako možemo pronaći element u korisničkom sučelju.
Sada, Selenium IDE ima vrlo zrelu biblioteku s obiljem akcija, tvrdnji/procjenitelja i strategija lociranja.
Ali ponekad mu trebamo dodati još neke funkcije za zahtjeve našeg projekta. U toj situaciji ovu biblioteku možemo proširiti dodavanjem naših prilagođenih proširenja. Ova prilagođena proširenja nazivaju se 'Korisnička proširenja'.
Na primjer, potrebna nam je radnja koja može pretvoriti tekst u velika slova prije nego što ga ispunimo u web elementu. Ne možete pronaći ovu radnju u zadanoj biblioteci radnji. U tom slučaju možete izraditi vlastito 'Korisničko proširenje'. U ovom vodiču naučit ćemo kako stvoriti korisničko proširenje za pretvaranje teksta u velika slova
Zahtjev za stvaranje Selenium korisničko proširenje
Za izradu korisničkog proširenja za Selenium IDE, moramo znati osnovni koncept JavaScript i Java Koncept objekta prototipa skripte.
Da biste izradili svoje korisničko proširenje, morate izraditi Java metode skripte i dodajte ih u prototip objekta selenium i prototip objekta PageBot.
Kako Selenium IDE prepoznaje korisničko proširenje?
Nakon dodavanja korisničkog proširenja u Selenium IDE kada počnemo Selenium IDE, sva ova proširenja u javascript prototipu se učitavaju i Selenium IDE ih prepoznaje po imenu.
Kako stvoriti korisničko proširenje
Korak 1) Radnja– sve akcije se pokreću s “do”, tj. ako je akcija za tekst velikim slovima onda će biti i njen naziv doTextUpperCase. Kada dodamo ovu akcijsku metodu Selenium SDI, Selenium IDE će sam stvoriti metodu čekanja za ovu radnju. Dakle, u ovom slučaju kada stvaramo doTextUpperCase akcija, Selenium IDE će stvoriti odgovarajuću funkciju čekanja kao TextUpperCaseAndWait. Može prihvatiti dva parametra
Primjer: Radnja teksta velikim slovima
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); };
Korak 2) Procjenitelji/Tvrdnje- Svi procjenitelji registrirani u prototipu selenium objekta bit će prefiksirani
pomoću "dobi" ili "je" Npr. getValueFromCompoundTable, isValueFromCompoundTable. Može prihvatiti dva parametra, jedan za cilj, a drugi za polje vrijednosti u testnom slučaju.
Za svakog ocjenjivača postojat će odgovarajuće funkcije provjere s prefiksom "provjeri", "tvrditi" i prefiksom funkcije čekanja s prefiksom "čekaj"
Primjer: Za ocjenjivače teksta velikim slovima
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; };
Korak 3) Strategija lokatora- Ako želimo stvoriti vlastitu funkciju za lociranje elementa
moramo proširiti PageBot prototip s funkcijom s prefiksom "locateElementBy."
Zauzet će dva parametra, prvi će biti niz lokatora, a drugi će biti dokument
gdje ga treba pretražiti.
Primjer: za lokator teksta velikim slovima
// 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; };
Kako koristiti novostvoreno osnovno proširenje?
- Idi na Selenium IDE
Kliknite na Opcije -> Opcije…
- U odjeljku Općenito odaberite lokaciju novostvorenog Selenium Core Extension
- Pritisnite OK i ponovno pokrenite Selenium IDE
- Ekstenziju ćete pronaći na popisu naredbi
Ovdje je popis popularnih proširenja/dodataka koji se koriste u Selenium IDE
Ime i Prezime | Svrha |
---|---|
Omiljene | Za označavanje paketa testova kao omiljenih i njihovo izvršavanje jednim klikom |
Flex Pilot X | Za automatizaciju temeljenu na Flexu |
FlexMonkium | Za snimanje i reprodukciju temeljeno na Adobe Flexu Ispitivanje in Selenium IDE |
Zapisivanje datoteka | Za spremanje zapisa u datoteku |
Kontrola protoka | Za kontrolu tijeka izvođenja testa |
Označite elemente | Za označavanje web kontrole |
Implicitno čekanje | Čekati element određeno vrijeme |
Snimka zaslona pri neuspjehu | Napravite snimku zaslona u slučaju neuspjeha |
Rezultati ispitivanja | UŠTEDI Testni slučaj rezultat za paket testova jednim klikom |
Možete nabaviti sve ovo i još mnogo više od SeleniumOdjeljak za preuzimanje službene stranice HQ-a
http://docs.seleniumhq.org/download/
rezime
- Postoje tri dijela Selenium IDE, akcija, procjenitelji/tvrdnje, strategija lokatora.
- Korisnička ekstenzija se stvara kada Selenium IDE ne ispunjava trenutni zahtjev.
- Za izradu korisničkog proširenja potrebno je dodati javascript prototipu objekta selena.
- Nakon izrade proširenja potrebno ga je dodati Selenium IDE i ponovno pokrenite IDE.
Preuzimanje Selenium Core Extension korišten u ovom vodiču