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.









