2011-09-01 18 views

Odpowiedz

3

Okazuje się, że odpowiedź brzmi:

driver.move_to(el).perform 

zapomniałem .perform.

+0

Sprawdź @ Seanny123 i mój komentarz o tym, dlaczego to może teraz pracować. –

3

Działa to dla mnie:

driver.mouse.move_to el 
+0

Sprawdź @ Seanny123 i mój komentarz poniżej na odpowiedź na pytanie, dlaczego to może teraz działać. –

5

użyłem driver.action.move_to(el).perform który różni się bardzo nieznacznie od innych odpowiedzi, więc myślałem, że to go przez wzgląd na kompletność.

+2

obecnie selen rozwidla funkcję 'move_to', więc musisz teraz użyć' .action', aby uzyskać dostęp do funkcji myszy. –

+0

@DanSabin chciałbyś zaproponować edycję wyjaśniającą to? Całkowicie to zaakceptowałbym. – Seanny123

1

Musisz użyć Selenium's Action Builder, aby uzyskać dostęp do bardziej złożonych akcji, takich jak najechanie (co jest odpowiedzią seanny123).

Ponadto, jeśli pracujesz z zawisaniem, szanse na dynamiczne oczekiwanie na jego wyświetlenie przed podjęciem kolejnej czynności (na przykład przy użyciu wyraźnego oczekiwania) wymagają dynamicznego oczekiwania.

Połączyłem przykład, jak to zrobić - można zobaczyć pełny zapis here.

1

unosić element:

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

unosić element w określonym miejscu:

driver.action.move_to(element, mouse_x, mouse_y).perform 
# e.g.  
driver.action.move_to(driver.find_element(css: 'a'), 100, 100).perform 
Powiązane problemy