Selenium Põhilaiendid (User-Extensions.js)
Laienduste mõistmiseks mõistke kõigepealt seleeni IDE kolme sammast
- Toiming: millist toimingut te kasutajaliidese ekraanil teete
- Hindajad/väide: millise kinnituse teete kasutajaliideselt saadud andmetele
- Lokaatori strateegia: kuidas leiame kasutajaliideses elemendi?
Nüüd, Selenium IDE-l on väga küps raamatukogu, kus on palju toiminguid, väiteid/hindajaid ja lokatsioonistrateegiaid.
Kuid mõnikord peame oma projektinõuete jaoks sellele lisama rohkem funktsioone. Sellises olukorras saame seda teeki laiendada, lisades oma kohandatud laiendused. Neid kohandatud laiendusi nimetatakse kasutajalaienditeks.
Näiteks vajame toimingut, mis suudab teksti enne veebielemendi täitmist suurtähtedeks teisendada. Te ei leia seda toimingut vaiketoiminguteegist. Sellisel juhul saate luua oma kasutajalaiendi. Selles õpetuses õpime, kuidas luua kasutajalaiendit teksti suurtähtedeks teisendamiseks
Nõue luua Selenium kasutajalaiend
Kasutajalaiendi loomiseks Selenium IDE, peame teadma selle põhikontseptsiooni JavaScript ja Java Skripti prototüübi objekti kontseptsioon.
Kasutajalaiendi loomiseks peate looma Java skriptimeetodid ja lisage need seleeniobjekti prototüübile ja PageBoti objekti prototüübile.
Kuidas Selenium Kas IDE tunneb kasutajalaiendi ära?
Pärast kasutajalaiendi lisamist Selenium IDE, kui alustame Selenium IDE, laaditakse kõik need JavaScripti prototüübi laiendused ja Selenium IDE tunneb nad ära nende nime järgi.
Kuidas luua kasutajalaiendit
Samm 1) Toiming– kõik toimingud algavad sõnaga "do", st kui tegu on suurtähtedega, siis on selle nimi doTextUpperCase. Kui lisame selle toimingumeetodi sisse Selenium SDI, Selenium IDE loob selle toimingu jaoks ise ootemeetodi. Nii et sel juhul, kui me loome doTextUpperCase meetmeid, Selenium IDE loob vastava ootefunktsiooni kujul TekstUpperCaseAndWait. See võib aktsepteerida kahte parameetrit
Näide: tekstitoiming suurtähtedega
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);
};
2. samm) Hindajad/väide- Kõik seleeniobjekti prototüübis registreeritud hindajad märgitakse eesliitega
sõnaga "saada" või "on" Nt. getValueFromCompoundTable , isValueFromCompoundTable . See võib testjuhtumil aktsepteerida kahte parameetrit, üks sihtmärgi ja teine väärtuse välja jaoks.
Iga hindaja jaoks on vastavad kontrollifunktsioonid, mille eesliide on "verify", "assert" ja ootefunktsiooni eesliide on "waitFor".
Näide: teksti suurtähtedega hindajatele
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;
};
Samm 3) Lokaatoristrateegia – Kui soovime elemendi asukoha leidmiseks luua oma funktsiooni, siis
peame laiendama PageBoti prototüüpi funktsiooniga, mille eesliit on "locateElementBy".
See võtab kaks parameetrit, esimene on lokaatori string ja teine dokument
kust seda tuleb otsida.
Näide: suurtähtedega tekstiotsija jaoks
// 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;
};
Kuidas kasutada äsja loodud põhilaiendit?
- Minna Selenium IDE
Klõpsake valikutel Valikud -> Valikud…
- Jaotises Üldine valige vastloodud asukoht Selenium Põhipikendus
- Klõpsake nuppu OK ja taaskäivitage Selenium IDE
- Laienduse leiate käsuloendist
Siin on kasutatud populaarsete laienduste/pistikprogrammide loend Selenium IDE
| Eesnimi | Eesmärk |
|---|---|
| Lemmikud | Testkomplekti lemmikuks märkimiseks ja nende käivitamiseks ühe klõpsuga |
| Flex Pilot X | Flexipõhise automatiseerimise jaoks |
| FlexMonkium | Adobe Flexi põhise salvestamise ja taasesituse jaoks Testimine in Selenium IDE |
| Failide logimine | Logide faili salvestamiseks |
| Vookontroll | Testi täitmise voo juhtimiseks |
| Tõstke esile elemendid | Veebi juhtelemendi esiletõstmiseks |
| Kaudne ootamine | Elementi ootamine teatud aja jooksul |
| Ekraanipilt ebaõnnestumise korral | Tehke ebaõnnestumise kohta ekraanipilt |
| Testi tulemused | Säästa Testjuhtum testkomplekti tulemus ühe klõpsuga |
Neid kõiki ja palju muud saate siit SeleniumHQ ametliku saidi allalaadimise jaotis
http://docs.seleniumhq.org/download/
kokkuvõte
- Seal on kolm osa Selenium IDE, tegevus, hindajad/väide, asukohastrateegia.
- Kasutajalaiend luuakse, kui Selenium IDE ei täida praegust nõuet.
- Kasutajalaienduse loomiseks tuleb seleeni objekti prototüübile lisada javascript.
- Pärast laienduse loomist tuleb see lisada Selenium IDE ja taaskäivitage IDE.









