2011-09-01 22 views

risposta

3

Attiva la risposta è:

driver.move_to(el).perform 

ho dimenticato il .perform.

+0

Controllare @ Seanny123 e il mio commento non sul perché questo può ora lavorare. –

3

Questo funziona per me:

driver.mouse.move_to el 
+0

Controlla @ Seanny123 e il mio commento qui sotto sulla risposta al motivo per cui ora potrebbe funzionare. –

5

ho usato driver.action.move_to(el).perform che differisce sempre leggermente dalle altre risposte, così ho pensato che avrei includerlo per completezza.

+2

attualmente il selenio si è staccato dalla funzione 'move_to' quindi è necessario utilizzare' .action' per accedere alle funzioni del mouse. –

+0

@DanSabin ti piacerebbe proporre una modifica chiarendo questo? Lo accetterei totalmente. – Seanny123

1

È necessario utilizzare Selenium's Action Builder per accedere ad azioni più complesse come il passaggio del mouse (che è la risposta di seanny123 sta dimostrando).

Inoltre, se si sta lavorando con un passaggio del mouse, le probabilità sono che devi attendere dinamicamente che venga visualizzato prima di eseguire l'azione successiva (ad esempio, utilizzando un'attesa esplicita).

Ho messo insieme un esempio su come fare questo - è possibile vedere l'articolo completo here.

1

librarsi un elemento:

driver.action.move_to(element).perform 
# e.g.  
driver.action.move_to(driver.find_element(css: 'a')).perform 

a librarsi un elemento in un punto specifico:

driver.action.move_to(element, mouse_x, mouse_y).perform 
# e.g.  
driver.action.move_to(driver.find_element(css: 'a'), 100, 100).perform 
Problemi correlati