2012-04-20 14 views
5

Sono nuovo del selenio e ho bisogno di chiarimenti su alcune cose. Ho provato click e clickAndWait nell'IDE, e mentre i riferimenti indicati chiaramente ciò che significava ciascuno, quando esporto il banco di prova per Python, sembra che entrambi stanno facendo la stessa cosa quiSelenio: qual è la differenza tra clic e clickAndWait?

driver.find_element_by_xpath("//li[@id='pa-u_8298348-bd']/a/span[2]").click() #click and wait 
driver.find_element_by_link_text("IMVironments").click() #click 

Può qualcuno dire me, qual è la differenza qui allora?

risposta

4

Da Selenium docs:

Molte azioni possono essere chiamati con il suffisso "AndWait", ad esempio, "clickAndWait". Questo suffisso indica al Selenium che l'azione causerà il browser per effettuare una chiamata al server e che Selenium dovrebbe attendere il caricamento di una nuova pagina.

+2

E come si ottiene questo con il binding Python? – rakslice

0

Non sono sicuro se si tratta di una cosa python, ma sembra che tu stia chiamando "clic" e non stia chiamando "clickAndWait". Penso che questo sia ciò che Trott sottolinea anche. Con questo detto ho notato che IE richiede spesso AndWait un po 'più spesso di Firefox o Chrome, che sembrano trattare solo con un clic meglio (a causa della velocità?). Puoi anche creare la tua "attesa" nel selenio, che è quello che faccio di solito in situazioni critiche (perché devi interagire con un elemento specifico in modo da "aspettare" finché non esiste).

MODIFICA: Dopo il tuo commento, ora capisco cosa stai dicendo (è stato leggermente confuso riguardo al commento "clickandwait": P). Da quello che posso dire, AndWait non è sempre disponibile per il binding Python, ho trovato quello here, ma ammetto che non è chiaro al 100% come suggerisce il contrario in altri posti. Forse sarebbe utile invece?

wait_for_page_to_load (timeout) [fonte]

attende una nuova pagina da caricare.

È possibile utilizzare questo comando al posto dei suffissi “AndWait”, “clickAndWait”, “selectAndWait”, “typeAndWait”, ecc (che sono solo disponibile nelle API JS).

Inserito come una modifica, perché era troppo lungo per un commento, mi dispiace!

+1

in realtà quello che volevo dire era quando esportavo il caso di test IDE, clickAndWait e fai clic su azioni dall'IDE entrambi tradotte nello stesso codice in python, che non era quello che mi aspettavo .. – goh

2

2 anni dopo, lo so. Ma stavo cercando la stessa risposta e l'ho trovata.

Dal Selenium Wiki

L'AndWait alternativa viene utilizzata qualora l'azione fa sì che il browser per passare ad un'altra pagina o ricaricare quello attuale.

In altre parole, il webdriver di Selenium, quando si utilizza il comando Click(), utilizzerà intrinsecamente il modificatore "AndWait" se riconosce il caricamento di una pagina.

Vedi anche Interface WebElement

vuoto click()

clic su questo elemento. Se ciò causa il caricamento di una nuova pagina, questo metodo tenterà di bloccare fino al caricamento della pagina.

Problemi correlati