Automatiserad webb testning i Ruby med Watir-Webdriver (4 / 7 steg)
Steg 4: Gå igenom flera HTML-objekt
Hittills har vi interagerar med enstaka objekt genom att direkt ringa dem inom vår kod, men detta är mycket ineffektiv eftersom de flesta webbapplikationer har många Divar, former, knappar, kryssrutor och liknande på en enda sida. Det är inget fel med att göra åtgärder för varje HTML-objekt, men du kommer att spendera en massa tid att redigera din kod.
Till exempel om en webbplats har 100 kryssrutor och du vill klicka på alla av dem skulle du behöver 100 rader kod om följer du den tidigare metoden. Även om Watir-Webdriver har inbyggd teknik för att hjälpa oss i att göra detta så snabbt och enkelt som möjligt.
För det mesta skapar pluralformen av det objekt du vill arbeta på returnerar en samling av alla HTML-objekt som matchar. En samling är helt enkelt en gruppering av objekt som du kan och sedan loopa igenom och interagera med vilket gör att färre mer koncis kodrader. Tillsammans med dessa samlingar, kan du behöva använda regex för att tala Watir-Webdriver vad du vill inuti denna samling.
Tillbaka till vår 100 kryssrutor exempel, kan säga att de alla har ID "checkbox-X" där X är det numeriska värdet för checkbox. Om vi berätta Watir-Webdriver att söka efter en specifik kryssruta ex: "checkbox-10" det är den enda kryssruta som kommer att läggas till listan. För att lösa detta kan vi använda enkla regex för att göra ett "wild card" matcha för alla kryssrutor vi vill samla in.
kryssrutorna = browser.checkboxes (: id = > /checkbox-/)
CheckBoxes.each |checkbox|
CheckBox.set
slutet
I detta exempel vi skapat en ny variabel kallas kryssrutor för att hålla vår samling och vi brukade pluralformen av checkbox (kryssrutor) berätta Watir-Webdriver att ge oss alla kryssrutor som matchar våra ID-namn vi har levererat. ID-namn är en regex match som i huvudsak säger "om id för en checkbox innehåller"checkbox-"och sedan lägga till den i listan". Efteråt vi upprepa (loop) igenom våra kryssrutor och ange var och en till true (Klicka på den).
Som ni ser har vi bara trimmas ner 100 rader kod Klicka på 100 kryssrutor i 4 rader med kod som gör samma uppgift. Detta kan tillämpas på nästan alla HTML-objekt som som en sällsam utgör sådan som knappen, radio, checkbox, li, div, text_field och många andra.