Webdriver executescript și executeasyncscript, turn electric

Webdriver executescript și executeasyncscript, turn electric

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ă:
  1. Elementul Html este transformat într-un WebElement
  2. Decimal - în dublu
  3. Numărul non-zecimal - în lung
  4. Boolean - Boolean
  5. Pentru alte cazuri, String-ul va fi returnat
  6. 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 ();