Web drivrutin IO handledning med hjälp av en levande webbplats och arbetar exempel (5 / 8 steg)

Steg 5: Konkreta exempel

All kod finns tillgänglig på github: Web drivrutin IO Tutorial på github

  • Verifiera länk och länktexten i en oordnad lista - "linkTextURL1.js"

    • Oordnad lista har ett id = "mylist" och länken är posten 4.
    • URL-adressen ska vara "http://tlkeith.com/contact.html"

Verifiera kontakta oss länktext
det ("bör innehålla kontakta oss länktexten", funktion () {
returnera drivrutin
.getText("//ul [(länk) {
Console.log (' länken finns: ' + länk);
(länk).should.equal ("kontakta oss");
});
});

Verifiera kontakta oss URL
det ("bör innehålla kontakt oss URL", funktion () {
returnera drivrutin
.getAttribute("//ul ["href") .så (funktion (länk) {
(länk).should.equal ("http://tlkeith.com/contact.html");
Console.log ("URL hittade:" + länk);
});
});

  • Verifierar Copyright Text - "Copyright1.js"

    • Upphovsrätten är i footerThis exempel visar 2 olika sätt att lokalisera den copyright texten:
      • av id = "copyright" som elementväljare
      • med hjälp av xpath som elementväljare

Verifiera Copyright text med id som elementväljare
det ("bör innehålla Copyright text", funktion () {
returnera drivrutin
.getText("#copyright").then (funktion (länk) {
Console.log ("Copyright hittade:" + länk);
(länk).should.equal ("Tony Keith - tlkeith.com @ 2015 - alla rättigheter reserverade.");
});
});

Verifiera Copyright text med hjälp av xpath som elementväljare
det ("bör innehålla Copyright text", funktion () {
returnera drivrutin
.getText("//footer/center/p").then(function (länk) {
Console.log ("Copyright hittade:" + länk);
(länk).should.equal ("Tony Keith - tlkeith.com @ 2015 - alla rättigheter reserverade.");
});
});

  • Fylla i formulärfält och skicka - "formFillSubmit1.js"

    • Fyll i förnamn, efternamn och lämna in, sedan vänta på resultat.
    • Detta exempel visar 3 metoder för att fylla fältet Förnamn:
      • efter id
      • av xpath från ingång
      • -> input av xpath från form
    • Visar också hur man rensar ett inmatningsfält

Ange det första namnet med id till: Tony
det ("ska in förnamn till Tony", funktion () {
återgå driver.setValue ("#fname", "Tony")
.getValue("#fname").then (funktion (e) {
(e).should.be.equal("Tony");
Console.log ("förnamn:" + e);
});
});

Klart det första namnet med id
('bör klart förnamn', funktion () {
återgå driver.clearElement("#fname")
.getValue("#fname").then (funktion (e) {
(e).should.be.equal("");
Console.log ("förnamn:" + e);
});
});

Ange det första namnet med hjälp av xpath från ingång till: Tony
det ("ska in förnamn till Tony", funktion () {
återgå driver.setValue ("//input ["Tony")
.getValue("//input [funktion (e) {
(e).should.be.equal("Tony");
Console.log ("förnamn:" + e);
});
});

Klart det första namnet med hjälp av xpath från ingång
('bör klart förnamn', funktion () {
återgå driver.clearElement ("//input [
.getValue("//input [funktion (e) {
(e).should.be.equal("");
Console.log ("förnamn:" + e);
});
});

Ange det första namnet med hjälp av xpath från formuläret till: Tony
det ("ska in förnamn till Tony", funktion () {
återgå driver.setValue ("//form ["Tony")
.getValue("//form [funktion (e) {
(e).should.be.equal("Tony");
Console.log ("förnamn:" + e);
});
});

Ange efternamnet med id till: Keith
det ("ska in efternamn till Keith", funktion () {
återgå driver.setValue ("#lname", "Keith")
.getValue("#lname").then (funktion (e) {
(e).should.be.equal("Keith");
Console.log ("efternamn:" + e);
});
});

Skicka formuläret och vänta för sökresultat
det ('bör skicka formuläret och vänta på resultat, funktion () {
återgå driver.submitForm("#search-form").then (function(e) {
Console.log ("skicka formulär');
})
.waitForVisible("#search-results", 10000).then (funktion (e) {
Console.log ("Sök Resultat funna');
});
});

  • Klicka på Visa/Dölj-knappen och kontrollera Text - "showHideVerify1.js"

    • Texten är i ett Visa/Dölj element. Knappen styr staten.
    • Detta exempel visar:
      • Klicka på knappen expandera
      • Vänta för elementet som ska visas (utökad)
      • Kontrollera text (kopia däck)

Klicka på "Mer Info" knappen och kontrollera text i utökad element
det ('bör Klicka på informationsknappen mer och kontrollera text, funktion () {
returnera drivrutin
.Click("#moreinfo").then (funktion () {
Console.log ("klickade på More Info-knappen');
})
.waitForVisible ("#collapseExample", 5000)
.getText("//div [(funktion (e) {
Console.log ("Text: ' + e);
e.should.be.equal ("allt bra gå här!");
});
});

  • Validera formulär fält fel - "formFieldValidation.js"

    • Använd testskript för att kontrollera rätt felmeddelanden produceras.
    • Detta exempel visar:
      • Kontrollera text felmeddelanden och verifiera plats (oordnad lista position).

det ("bör innehålla 5 fel: första/sista/adress/stad/stat", fungera () {
returnera drivrutin
.getText("//ul [alert-fara '] /li [1]") .så (funktion (e) {
Console.log ("fel hittades: ' + e);
e.should.be.equal ("Ange förnamn');
})
.getText("//ul [alert-fara '] /li [2]") .så (funktion (e) {
Console.log ("fel hittades: ' + e);
e.should.be.equal ("Ange efternamn');
})
.getText("//ul [alert-fara '] /li [3]") .så (funktion (e) {
Console.log ("fel hittades: ' + e);
e.should.be.equal ("Skriv in adress');
})
.getText("//ul [alert-fara '] /li [4]") .så (funktion (e) {
Console.log ("fel hittades: ' + e);
e.should.be.equal ("Skriv in stad');
})
.getText("//ul [alert-fara '] /li [5]") .så (funktion (e) {
Console.log ("fel hittades: ' + e);
e.should.be.equal ("Skriv in staten');
});
});

  • Looping Data för att verifiera URL länk/Text/sida - "LoopDataExample1.js"

    • Detta exempel visar: Använd en mängd JSON data som lagras på länken och namn, sedan upprepa
      • Kontrollera varje URL text och länk
      • Klicka på länken och ladda sida

Länka data - länk och text
var linkArray = [
{"länk": "https://github.com/onewithhammer/WebDriverIOTutorial/blob/master/tutorial1.js", "namn": "tutorial1.js"},
{"länk": "https://github.com/onewithhammer/WebDriverIOTutorial/blob/master/linkTextURL1.js", "namn": "linkTextURL1.js"},
{"länk": "https://github.com/onewithhammer/WebDriverIOTutorial/blob/master/copyright1.js", "namn": "copyright1.js"},
{"länk": "https://github.com/onewithhammer/WebDriverIOTutorial/blob/master/formFillSubmit1.js", "namn": "formFillSubmit1.js"},
{"länk": "https://github.com/onewithhammer/WebDriverIOTutorial/blob/master/showHideVerify1.js", "namn": "showHideVerify1.js"},
{"länk": "https://github.com/onewithhammer/WebDriverIOTutorial/blob/master/dynamicBrowser.js", "namn": "dynamicBrowser.js"},
{"länk": "https://github.com/onewithhammer/WebDriverIOTutorial/blob/master/callbackPromise.js", "namn": "callbackPromise.js"},
{"länk": "https://github.com/onewithhammer/WebDriverIOTutorial/blob/master/debugExample1.js", "namn": "debugExample1.js"},
{"länk": "https://github.com/onewithhammer/WebDriverIOTutorial/blob/master/formFieldValidation.js", "namn": "formFieldValidation.js"},
{"länk": "https://github.com/onewithhammer/WebDriverIOTutorial/blob/master/common/commonLib.js", "namn": "commonLib.js"},
{"länk": "https://github.com/onewithhammer/WebDriverIOTutorial/blob/master/dataLoopExample1.js", "namn": "dataLoopExample1.js"}
];
...
loopa igenom alla linkArray
linkArray.forEach(function(d) {
det ("bör innehålla text/länk sedan goto page -" + d.name, function() {
returnera drivrutin
se till att du är på startsidan
URL ("http://www.tlkeith.com/WebDriverIOTutorialTest.html")
.getTitle () .så (funktion (titel) {
verifiera titel
(titel).should.be.equal ("Web drivrutin IO - handledning provsida");
})
hitta Webbadressen
.getAttribute('a=' + d.name, "href").then (funktion (länk) {
(link).should.equal(d.link);
Console.log ("URL hittade:" + d.link);
})
gå till URL-sida och kontrollera det finns
.Click ("a =" + d.name)
.waitForVisible("#js-repo-pjax-container", 10000).then (funktion () {
Console.log ("Github sida Funna');
});
});
});

  • Looping statiska Data att befolka formulärfälten - "loopDataExample2.js"

    • Detta exempel visar: Använd en mängd JSON data att spara första/sista namn
      • Loopa igenom uppgifterna att fylla i formulärfält och sedan skicka formuläret
      • Vänta på resultatsidan
      • Kontrollera första / sista namn på resultatsidan

uppgifter array - förnamn och efternamn < br > var dataArray = [
{"förnamn": "Tony", "lastName": "Keith"},
{"förnamn": "John", "lastName": "Doe"},
{"förnamn": "Jane", "lastName": "Doe"},
{"förnamn": "Don", "lastName": "Johnson"}
];

...

loopa igenom alla dataArray < br > dataArray.forEach(function(d) {
det ('bör fylla i fält, uppge sida', function() {
returnera drivrutin
se till att du är på startsidan
URL ("http://www.tlkeith.com/WebDriverIOTutorialTest.html")
.getTitle () .så (funktion (titel) {
verifiera titel
(titel).should.be.equal ("Web drivrutin IO - handledning provsida");
})
.setValue ("#fname", d.firstName)
.getValue("#fname").then (funktion (e) {
(e).should.be.equal(d.firstName);
Console.log ("förnamn:" + e);
})
.setValue ("#lname", d.lastName)
.getValue("#lname").then (funktion (e) {
(e).should.be.equal(d.lastName);
Console.log ("efternamn:" + e);
})
.submitForm("#search-form").then (function() {
Console.log ("skicka formulär');
})
.waitForVisible("#search-results", 10000).then (funktion () {
Console.log ("resultatet sida Funna');
})
.getText("//h1").then(function (länk) {
Console.log ("texten finns: ' + länk);
(länk).should.equal ("Välkommen" + d.firstName + "" + d.lastName + ".");
});
});
});

  • Validera CSS-egenskaper - "cssValidation1.js"

    • Detta exempel visar hur du:
      • Verifiera följande CSS-egenskaper:
        • färg
        • stoppning (topp, botten, höger, vänster)
        • bakgrundsfärgen

det ("bör innehålla rätt färg på feltext", fungera () {< br > retur drivrutin
.getCssProperty("//ul [alert-fara '] /li [1]", "färg") .så (funktion (resultat) {
Console.log ("färg hittade:" + result.parsed.hex + "eller" + result.value);
(result.parsed.hex).should.be.equal('#a94442');
});
});

det ("bör innehålla korrekt stoppning i cell", funktion () {
returnera drivrutin
stoppning: top högra nedre vänster
.getCssProperty("//table ["padding-top") .så (funktion (resultat) {
Console.log ("padding-top hittade:" + result.value);
(result.value).should.be.equal('10px');
})
.getCssProperty("//table ["padding-botten") .så (funktion (resultat) {
Console.log ("padding-botten hittade:" + result.value);
(result.value).should.be.equal('10px');
})
.getCssProperty("//table ["padding-right") .så (funktion (resultat) {
Console.log ("padding-höger hittade:" + result.value);
(result.value).should.be.equal('5px');
})
.getCssProperty("//table ["padding-left") .så (funktion (resultat) {
Console.log ("stoppning vänster hittade:" + result.value);
(result.value).should.be.equal('5px');
});
});

det ("bör innehålla korrekta bakgrundsfärg i tabell huvudet", funktion () {
returnera drivrutin
.getCssProperty("//table ["bakgrundsfärg") .så (funktion (resultat) {
Console.log ("bakgrundsfärg hittade:" + result.parsed.hex);
(result.parsed.hex).should.be.equal('#eeeeee');
});
});

Se Steg
Relaterade Ämnen

7-Key reglaget/hjul handledning med synt

Detta är en handledning för att använda den 7-Key reglaget/hjul Breakout från Rakels elektronik.Jag ska visa dig hur man löda in header stiften för maximal användarvänlighet. Rakels har QT1106 datablad på deras webbplats, och en stor arduino bibliote...

Lätt Eyeliner handledning med Eyeliner schabloner

Den lätt eyeliner handledning med hjälp av Beth Bender skönhet eyeliner schabloner kommer att göra dina ögon mjuk, lysa, glitter och verkligen ursnygg.Den "Backstage skönhet Smokey ögon Quad Deluxe" som innehåller allt du behöver för att skapa e...

Papper modell handledning med behaglig fåren

en papper modell handledning tar dig genom grunderna av papper modellering med behaglig fåren och som exempel...

Ladda din mobiltelefon med hjälp av bortkastad värme (och bygga en Steampunk Wall-E)

Vi uppdaterade den instructable med en ny implementering kan du bygga utan att spendera alla pengar på de dyra seebeck generatorer. Här använder Peltiers i omvänd att generera snarare än cool. De är inte så effektiva men de är mycket billigare. Plus...

Liten färg Mixer - en konstant ström, 3W RGB LED med indikator för låg batterinivå och polymorph diffuser

Styra en RGB LED är ett enkelt och vanligt mikrokontroller projekt, ofta nästa projekt gjort efter blinkande och blekning en LED.För att göra det mer intressant, byggde jag den med en ATtiny13, en av de minsta och enklaste AVRs, som krävde "high-volt...

Hur till sätta fast problemen med pionner ratt remote - öka IR-signalen och fixa lilla lås.

Denna fjärrkontroll är mycket vacker och bekväm, men ibland fungerar inte på rätt sättNågra faktorer för detta: dashboard design, steering wheel design och IR signaler projektet inte är ett exempel på effektivitet.Jag är från Brasilien och grunda den...

Bryta bort Paracord Logoband med sida spänne för frikoppling och vridning snap spänne (4-färg)

jag ville göra en snodd att visa min team färger på jobbet i uniform. Jag satte ihop flera flätor och tekniker som jag hade lärt mig här på insructables men med några vändningar som jag föredrar.Steg 1: leveranser Bilden topp över går nerScrapGutted...

Blinka ett antal lysdioder med hjälp av Python Programming Language och Raspberry Pi

översikt av stegI den första fasen, kommer jag att installera bara en LED. Nästa, jag ladda ner modulen LED klass python som representerar en hårdvara LED. Jag kommer att köra klassen LED Pythonmodul blinka det LED. Den första fasen fungerar som ett...

Sand låda med lock som öppnar i bänk och ett tak

Tack för att kolla mitt projekt. Jag ska försöka att göra dessa instruktioner så enkla som möjligt om någon vill bygga detta. Fråga om du har några frågor.Detta är en 4' x 4' x 6' sandlåda med lock som öppnar till bänkar och ett soltak för skugga. To...

Gräs nötkött lever med brown smör carmelized lök och torkade California plommon

Eller, mer känd i våra hushåll som rensa levern middag!Nötlever är en av den mest näringsrik mat. Hur det kvantitativt kan jämföras med andra livsmedel är beroende på hur näringsämnena är vägda (viktiga vitaminer, typer av fett, etc), om jämförelsen...

Gör pizza med en plasma cutter, en grävare och en hög med lera!

Efter flera år av bakning i North House Folk Schoolvedeldad tegelugn, bestämde jag mig att bygga en ugn av min egen. Jag gick lite crazy med extra funktioner (slab foundation, valv, aska dump, skorsten, dörrar, vedfack) och dekorationer (kalksten run...

Sedrick spindeln med rörliga leder, billiga, lätt och barnvänligt!

Väl Halloween är runt hörnet och det är återigen dags att sätta upp alla saker ghouly. Men du behöver inte bryta banken för att ge ditt hus wow faktor! Detta är en rolig halloween prydnad som både barn och vuxna kan göra, en rolig familjeaktivitet!Mi...

Enkla oljelampa eller ljus med hjälp av hushållet olja och hampa veke

detta instructable är att visa dig en snabb och enkel oljelampa som jag gjorde. Detta är bara att ge er killar och exempel och vissa data.===========================================================================Vad du behöver:Olja, rapsolja, olivol...

Täcka belägger med metall blomma till praktiken plasmaskärning och svetsning

syftet med denna blomma är att ge erfarenhet av att använda en plasma cutter och MIG-svetsning så att fula nybörjare styckning/svetsning lägger till charmen av blomman. Sedan tränar tenderar att få oss att fokusera på vad vi inte är bra på, varför in...

Målarfärg kan ugnen med tillbehör, förlorade skum Casting, och mycket mer!

När jag började kasta aluminium det slutliga målet var att bygga en svarv från grunden efter dave gingery verkstad från skrot metall serie böcker. Nu när jag har svarven, jag behöver inte nödvändigtvis att kasta stora delar hela tiden, och således de...

Låg höjd miljöövervakning med en Arduino baserade väder Instrument och Aeropod Remote Sensing plattform

ProjektöversiktStudenter på New Lothrop High School i Michigan har arbetat tillsammans för att bygga en plattform för remote sensing låg höjd som kallas en "Aeropod" och rummen har det med ett "Arduino" baserade väder instrument att sa...

Vattenmelon sallad med parmaskinka, snabb Pickled vattenmelon svål och Parmigiano-Reggiano

Par år sedan tog jag en tur med min familj till Italien och en av mina favorit rätter från resan var Prosciutto e Melone. Hopkoppling av söta saftiga cantaloupemelon med den rökiga salt skinkan ger perfekt balans. Jag älskar också enkelheten av denna...

(Ascensor) Hiss modellen med hjälp av Arduino, App Inventor och annan fri mjukvaran

ESPConstrucción, paso en paso, de un ascensor en escala usando arduino (como controlador del motor y inlägg y salidas por bluetooth), app inventor (para diseño de aplicación como panel de styra del ascensor) y freeCAD y LibreCAD para diseño.Abajo enc...

Definiera sortering algoritm: Med hjälp av Content Adressable minne och parallella jämförelser

En sorterings algoritm är en algoritm som placerar element i en lista i en viss ordning. De vanligaste orderna är numerisk ordning och lexikografiska ordning. Effektiv sortering är viktigt för att optimera användningen av andra algoritmer (som Sök oc...