Notă: Această secțiune nu a fost finalizată. În momentul în care secțiunea este scris. Suntem încrezători că informațiile conținute în acest document să fie corecte. Dar vom extinde treptat această secțiune. În același timp, vom examina, de asemenea, și să modifice textul.
Seleniu Oportunități 2.0
Seleniu 2.0 conține multe caracteristici interesante și îmbunătățiri Seleniu 1. Cea mai importantă schimbare în noua versiune - este WebDriver de integrare API, alternativă, interfața software-ul simplificat, care să depășească neajunsurile din seleniul 1. Scopul WebDriver API - dezvolta un obiect-orientat API, susținută de un număr mare de browsere și provocări de testare mai bine critice ale unor aplicații web moderne.
Notă: Descrierea noile caracteristici Seleniu 2.0 vor fi adăugate mai târziu. Între timp, ne referim la anunțul oficial într-un blog.
Atunci când este necesar să se utilizeze Seleniu Server
Un alt motiv pentru care ar putea avea nevoie de Seleniu Server, ar fi de a utiliza Seleniu Grid pentru test de executie distribuit. În cele din urmă, ai avea nevoie de ea dacă utilizați WebDriver sus (punerea în aplicare WebDriver a API-ului, care foloseste tehnologia Seleniul 1 pentru a interacționa cu browser-ul) Seleniu. Aceste subiecte sunt discutate mai în detaliu mai târziu în acest capitol.
Crearea unui proiect pentru dezvoltarea de teste folosind WebDriver
Acțiuni necesare pentru a crea un proiect software care permite sa se dezvolte teste folosind seleniu, depind de limbajul de programare și folosind orice mediu de dezvoltare aveți de gând să o facă.
Cel mai simplu mod de a face acest limbaj de programare - să utilizeze Maven pentru a crea un proiect. Maven va descărca automat Seleniu biblioteca client 2.0 pentru Java, împreună cu toate dependențele și de a crea un proiect folosind fișierul pom.xml (fișier de configurare a proiectului). După ce ați făcut acest lucru, puteți importa proiectul în mediul de dezvoltare preferat (IDE) - IntelliJ IDEA sau Eclipse.
Asigurați-vă că versiunea cea mai recentă de Seleniu. La momentul scrierii menționat în exemplul este cea mai recentă versiune, dar noi versiuni Seleniu 2.0 out de multe ori. Consultați informațiile furnizate pe pagina web. Maven specificând setările pentru versiunea curentă a Seleniu, și de a schimba în mod corespunzător relația (
Acum, la linia de comandă, modificați (cd) la directorul proiectului și rulați Maven urmează:
Această comandă va încărca Seleniul și toate dependențele și să le adăugați la proiect.
În cele din urmă, proiectul de import generat în mediul de dezvoltare preferat. Pentru cei care o fac pentru prima dată, am scris instrucțiuni.
Dacă utilizați Windows Vista sau mai nou, trebuie să deblocați mai întâi zip-fișier: faceți clic-dreapta pe fișier, selectați „Properties“, apoi faceți clic pe butonul „Deblocați“ și faceți clic pe „OK“.
Se extrage conținutul fișierului și adăugați link-uri la dezarhivat DLL-bibliotecă la proiect în Visual Studo sau orice alt IDE utilizați.
Seleniul este, de asemenea, distribuit ca un set de pachete NuGet:
Dacă utilizați Python pentru testarea automatizată, atunci cel mai probabil, sunteți deja familiarizați cu modul în care dezvoltarea de aplicare pe ea. Pentru a adăuga Seleniul la mediul Python, executați următoarea comandă la un prompt de comandă:
învățarea limbajului Python dincolo de domeniul de aplicare al acestui ghid. Din fericire, există multe resurse specializate, iar programatorii dumneavoastră vă poate ajuta în această chestiune.
Dacă utilizați Ruby pentru automatizare de testare, atunci cel mai probabil, sunteți deja familiarizați cu acest limbaj de programare. Pentru a adăuga Seleniul la limba Ruby pentru mediul dumneavoastră, executați următoarea comandă la interfață linie de comandă:
Ruby învățarea limbilor străine dincolo de domeniul de aplicare al acestui ghid, dar există multe surse de informații despre Ruby și, probabil, să fie în măsură să vă ajute să lucrați cu dezvoltatorii.
În prezent Seleniu 2.0 nu acceptă Perl. Dacă aveți întrebări sau doriți să ofere asistență în dezvoltarea de suport de limbă, vă rugăm să e-mail dezvoltatorii noștri.
În prezent Seleniu 2.0 nu are suport pentru PHP. Dacă aveți întrebări sau doriți să ofere asistență în dezvoltarea de suport de limbă, vă rugăm să e-mail dezvoltatorii noștri.
Migrare de seleniu 1.0
Pentru cei care au deja o suita de teste scrise folosind Seleniu 1.0, noi oferim o serie de recomandări cu privire la modul de a migra codul pentru a Seleniu 2.0. Saymon Styuart (Simon Stewart), un dezvoltator de Seleniu 2.0, a scris un articol despre aceasta, care poate fi găsit în Anexa „Migrarea de la Seleniul RC pe WebDriver“.
Noțiuni de bază cu Seleniu WebDriver
WebDriver - este un instrument de testare automată a aplicațiilor web, în special, pentru a verifica dacă aplicația funcționează conform așteptărilor. Acest program a fost conceput în așa fel încât să aibă o interfață convenabilă de programare (API), care permite de a spori lizibilitatea și a simplifica testele de întreținere, mai ușor de a învăța și de a înțelege decât Seleniu RC (1.0) API. API-ul WebDriver nu este legată de nici un cadru de test care vă permite să utilizați orice unitate de cadre de testare, precum și simplu vechi metoda „principal“.
Această secțiune vă ajută să vă familiarizați cu elementele de bază ale WebDriver API și să facă primii pași în utilizarea acestuia. Începeți prin crearea unui WebDriver-proiect, dacă nu ați făcut deja, așa cum este descris în secțiunea anterioară, Crearea unui proiect pentru dezvoltarea de teste folosind WebDriver.
Când creați un proiect, veți vedea că WebDriver se comportă ca o bibliotecă normală: este complet auto-suficient și, de regulă, nu aveți nevoie să vă amintiți să ruleze procese suplimentare sau de a rula programul de instalare înainte de a fi utilizat, în contrast cu proxy-ul Seleniu RC.
Acum sunteți gata pentru a începe scrierea de cod. Uită-te la următorul exemplu, care începe căutarea cuvântului „Brânză“ în Google, iar apoi se imprimă titlul paginii rezultate în consolă.
Acest tabel este în curs de dezvoltare
Pentru mai multe „siguranta perceputa“, puteți selecta un alt conducător auto, cum ar fi Firefox driver. Avantajul este că de fapt afișează pagina Web în acest browser, și, ca rezultat, acest lucru face posibil să se determine, de exemplu, poziția elementului pe pagina sau de a impune proprietăți CSS. Cu toate acestea, aceste caracteristici vin la un preț - viteza testului este redus foarte mult. Când dezvolta teste folosind WebDriver aveți posibilitatea de a alege driverul cel mai adecvat pentru un anumit test.
Să începem cu cel mai simplu driverul HtmlUnit driver:
Comenzile și operarea
deschiderea paginilor
Primul lucru pe care veți dori, probabil, să facă folosind WebDriver - deschide pagina de web. Aceasta este de obicei folosit „get“ metoda:
WebDriver va aștepta o descărcare completă a paginii (adică data la evenimentul de lucru „onload“), înainte de a reveni de control înapoi în script-ul de test. Dar această abordare nu poate funcționa dacă pagina efectuează un număr de cereri AJAX imediat după încărcarea (adică același eveniment „onload“). În acest caz, să aștepte pentru pagina este complet încărcată, puteți utiliza așteptări explicite și implicite.
Interacțiunea cu pagina
Posibilitatea de a ajunge doar la pagina dorită în sine nu este foarte valoroasă. Cea mai mare importanță este posibilitatea de a interacționa cu pagina, sau mai degrabă, cu-elemente HTML ale acestei pagini. În primul rând, aveți nevoie pentru a găsi elementul interesant. WebDriver oferă mai multe modalități de a căuta elemente. De exemplu, dacă aveți un element definit în codul HTML, după cum urmează:
puteți găsi în oricare dintre următoarele metode:
În plus, puteți găsi link-urile din textul lor. Dar fii atent! Textul linkului ar trebui să fie o potrivire exactă! De asemenea, să fie atenți atunci când se utilizează XPath în WebDriver. Dacă criterii îndeplinește mai multe elemente, rezultatul unei „findElement“ va fi primul dintre ele. Dacă nu puteți găsi nimic, vei primi „NoSuchElementException“ excepție.
WebDriver are API orientat pe obiect, toate tipurile de elemente de pagină a prezentat o WebElement interfață. Acest lucru înseamnă că, în ciuda faptului că funcția de completare automată în IDE vă arată un număr de metode posibile, nu toate dintre ele vor avea sens sau poate fi aplicat la un element specific găsit. Nu-ți face griji! Dacă apelați o metodă care nu are nici un sens (de exemplu, setSelected () pentru elementul „meta“), acest lucru va duce la excludere.
Deci, găsiți un element de pagină, atunci ce? În primul rând, vă recomandăm să introduceți orice text în câmpul de introducere:
Puteți simula apăsarea tastelor săgeată de pe tastatură folosind „Taste“ clasa:
Puteți apela „SendKeys“ metoda de orice element care face posibilă pentru a testa „cheile fierbinți“, cum ar fi cele care există în GMail. Acest lucru oferă următoarele reacții adverse: atunci când introduceți ceva în câmpul de text, nu vor fi șterse automat. Cu alte cuvinte, pe care le introduceți vor fi adăugate la textul existent. Cu toate acestea, puteți șterge cu ușurință caseta de text (ca o singură linie "de tip input =" text", precum și multi-line "textarea"):
Identificarea elementelor de pagină
Notă: Această secțiune trebuie să fie extinsă.
Identificarea elementelor din WebDriver se face prin „Prin“ clasă. Această clasă implementează toate metodele utilizate în căutare.
Utilizarea expresiilor XPath
WebDriver utilizează capabilitățile încorporate de browsere oriunde este posibil. Pentru acele browsere care au construit în suport pentru XPath lipsește, am făcut-o implementare proprie. Toate acestea pot duce la rezultate neașteptate, în unele cazuri, dacă nu știți despre diferențele în comportamentul inerent în XPath diferite implementări.
nume de atribut sau o altă etichetă
Uneori, elemente HTML nu trebuie să fie specificate în mod explicit din cauza atributelor în codul pe care le au un fel de valoare implicită standard de. De exemplu: elementul „de intrare“, nu are nevoie de atributul „tip“, deoarece acest atribut are o valoare implicită de „text“. Într-o astfel de situație, în practică, nu trebuie să așteptați XPath-interogare găsește un astfel de atribut implicit.
Introducerea de date - Completarea câmpurilor de formular
Suntem deja familiarizați cu modul de a introduce date în câmpurile de text, dar ce despre celelalte elemente? Puteți utiliza metoda de clic pentru a comuta între casetele de selectare sau selectați valoarea dorită (tag-ul „opțiune“) din lista ( „selectați“ tag-ul). cu liste de lucru nu este atât de complicat:
Acest cod gaseste primul element este „selectați“ pe o pagină și într-o buclă enumără toate opțiunile ( „opțiunea“), cu fiecare iterație scoate valoarea exemplul curent de realizare, precum și marcajul selectat-o. Cu toate acestea, s-ar putea să fi observat că acest lucru nu este cel mai convenabil mod de a lucra cu elementul „selectați“. Există o clasă specială de „Select“ între clasele WebDriver helper, oferind convenabil de a lucra cu elemente de astfel de tehnici.
Acest cod gaseste primul element „selectați“ pe o pagină, anulează selecția curentă (deselecta toate), apoi selectați elementul cu textul „Edam“.
După ce completați formularul, probabil că doriți să-l trimită. O modalitate de a face acest lucru - pentru a găsi și apăsați pe butonul de trimitere.
Mai mult decât atât, WebDriver poate apela metoda „submit“ pentru un element arbitrar. În cazul în care este solicitat un element care este într-o anumită formă, WebDriver se va deplasa în sus DOM până când până când se găsește sub formă cuprinzând să se apel și apoi „submit“ pentru ea. În cazul în care elementul nu este într-o formă, vei primi o excepție „NoSuchElementException“.
Comutarea între ferestre și rame
Unele aplicații web au mai multe ferestre sau rame. WebDriver capabil de a comuta între ele folosind metoda „switchTo“:
Puteți trece, de asemenea, un „switchTo (). Fereastra ()“ mâner de fereastră. Astfel, așa cum este descris mai jos, puteți ocoli toate ferestrele:
De asemenea, puteți trece la cadrele necesare (sau) cadrele de tip iFrame:
Pentru a accesa cadrele încorporate folosesc un nume compus cu exact ca separator, sau indicele de cadru copil. Uită-te la următorul exemplu:
Acest cod va duce la cadru cu numele „copilului“, in cadrul primei (indicele 0), care este atașat la cadru cu numele „frameName“. Numerotarea cadre este din partea de sus * *.
Pop-up casete de dialog
Începând cu 2.0 beta 1, Seleniul are un built-in instrumente pentru lucrul cu casete de dialog. După executarea oricărei acțiuni care conduce la un dialog de pe ecran, puteți accesa după cum urmează:
Acest cod va returna un obiect ce corespunde unui dialog modal deschis pe ecran în acest moment. Cu acest obiect, puteți lua măsuri „decizie“, „refuz“ pentru a obține conținutul unei ferestre, sau chiar pentru a scrie ceva în caseta de dialog câmp de introducere. Interfața Alert funcționează la fel de bine pentru o casetă de dialog de alertă, confirmați și prompt. Pentru mai multe informații, consultați JavaDocs.
Navigarea în istoricul browserului
Încă o dată: „“. Navigați () la () „“ și „“ get () „“ fac absolut același lucru. Doar o secundă mai scurt pentru a scrie.
Interfața de navigare ( „naviga“) are capacitatea de a merge mai departe și înapoi prin istoria browser-ului:
Rețineți că această opțiune se bazează în întregime pe punerea sa în aplicare a browser-ului. Dacă sunteți obișnuiți cu un anumit comportament al browser-ului, există posibilitatea ca celălalt se poate întâmpla este ceva ce nu vă așteptați.