Să vedem ce înseamnă sensul sacru și principala diferență a acestor metode.
executeScript
- Scriptul trimis la această metodă java va fi executat în contextul cadrului sau ferestrei selectate.
- Acesta va fi executat ca corp al unei funcții anonime.
- În acest script, puteți utiliza obiectul document ca referință la documentul curent. Aceasta înseamnă că puteți executa un script Java care conține, de exemplu, această linie: getElementById ("id").
- Variabilele locale după executarea scriptului nu vor fi disponibile, deși cele globale vor fi păstrate. Acest element vă permite să modificați variabilele globale de pe pagină.
- Dacă scriptul are valori returnate, convertirea la obiectele Java are loc după cum urmează:
- Elementul Html este transformat într-un WebElement
- Decimal - în dublu
- Numărul non-zecimal - în lung
- Boolean - Boolean
- Pentru alte cazuri, String-ul va fi returnat
- Matricea va fi transformată într-o listă de obiecte care sunt transformate în conformitate cu regulile enumerate mai sus. IMPORTANT! Listele pot fi imbricate! Ie Dacă o matrice bidimensională este transferată de la JS, aceasta va deveni o listă de liste.
Fiți atenți. ExecuteScript returnează non-primitive, dar obiecte! Acest lucru trebuie luat în considerare în lucrările ulterioare.
- Dacă scriptul nu întoarce nimic, atunci metoda returnează nul.
- Valorile transmise scriptului pot fi un număr, o valoare booleană, un șir, un WebElement sau o listă. Puteți să le utilizați în JS ca elemente ale matricei de argumente. Ie dacă treceți în metoda executeScript, de exemplu, WebElement. apoi clic pe acesta poate fi următorul cod JS: argumente [0] .click ();