Utilizzando la versione Python di Selenium, è possibile fare clic su alcuni elementi nel DOM e specificare le coordinate in cui si desidera fare clic su di esso? La versione Java ha il metodo clickAt
, che in realtà fa esattamente quello che sto cercando, ma non riesce a trovare l'equivalente in Python.Selenio - Fare clic in una determinata posizione
risposta
non ho usato personalmente questo metodo, ma guardando attraverso il codice sorgente di selenium.py
ho trovato i seguenti metodi che sembrano farei ciò che si vuole - Cercano di avvolgere clickAt
:
def click_at(self,locator,coordString):
"""
Clicks on a link, button, checkbox or radio button. If the click action
causes a new page to load (like a link usually does), call
waitForPageToLoad.
'locator' is an element locator
'coordString' is specifies the x,y position (i.e. - 10,20) of the mouse event relative to the element returned by the locator.
"""
self.do_command("clickAt", [locator,coordString,])
def double_click_at(self,locator,coordString):
"""
Doubleclicks on a link, button, checkbox or radio button. If the action
causes a new page to load (like a link usually does), call
waitForPageToLoad.
'locator' is an element locator
'coordString' is specifies the x,y position (i.e. - 10,20) of the mouse event relative to the element returned by the locator.
"""
self.do_command("doubleClickAt", [locator,coordString,])
Vengono visualizzati nell'oggetto selenio e qui è il loro online API documentation.
Il motivo per cui ci si confonde è clickAt
è un vecchio metodo v1 (Selenium RC).
WebDriver ha un concetto leggermente diverso, di 'Actions'.
In particolare, il builder "Azioni" per i binding Python è attivo here.
L'idea del comando clickAt
consiste nel fare clic su una determinata posizione relativo a in un elemento particolare.
Lo stesso è ottenibile all'interno del WebDriver, utilizzando il builder 'Azioni'.
Speriamo che questo updated documentation possa essere d'aiuto.
Questo dovrebbe farlo! Vale a dire che è necessario utilizzare le action chain da Webdriver. Una volta che hai un'istanza di questo, devi semplicemente registrare un gruppo di azioni e quindi chiamare perform()
per eseguirle.
from selenium import webdriver
driver = webdriver.Firefox()
driver.get("http://www.google.com")
el=driver.find_elements_by_xpath("//button[contains(string(), 'Lucky')]")[0]
action = webdriver.common.action_chains.ActionChains(driver)
action.move_to_element_with_offset(el, 5, 5)
action.click()
action.perform()
Questo sposterà il mouse 5 pixel in verticale e 5 pixel a destra dall'angolo in alto a sinistra del pulsante Mi sento fortunato. Quindi sarà click()
.
Si noti che si deve utilizzare perform()
. Altrimenti non accadrà nulla.
- 1. Come scorrere UITableView in una determinata posizione?
- 2. Come posso simulare un clic del mouse in una determinata posizione sullo schermo?
- 3. Utilizzare il selenio per fare clic su un swf
- 4. Fare clic su un pulsante href con selenio e pitone?
- 5. Inserire il valore in una stringa in una determinata posizione?
- 6. Perché non posso fare clic su un elemento nel selenio?
- 7. come si può fare clic destro con selenio?
- 8. Web driver di selenio fare clic su google search
- 9. Come gonfiare una vista in una determinata posizione?
- 10. doppio clic in una posizione specifica
- 11. Doppio clic in selenio di pitone
- 12. partire vim con vimfiles in una determinata posizione
- 13. Fare una funzione dinamica sul ng clic
- 14. Fare clic una volta - Tutti gli utenti
- 15. Come posso ottenere l'elenco degli elementi DOM che si trovano in una determinata posizione nella pagina
- 16. OpenWebKitSharp e fare clic una volta?
- 17. Come inizializzare MKMapView con una determinata posizione utente?
- 18. Fare clic su OPPURE, quindi fare qualcosa
- 19. Posso ottenere la posizione del collegamento tramite selenio?
- 20. Aggiungere una vista testo a un FrameLayout in una determinata posizione
- 21. Ctrl angolare fare clic?
- 22. come fare clic automaticamente su "vuoi aprire o salvare?"
- 23. Set Fare clic in una casella di testo con zk
- 24. Fare doppio clic su una riga NSTableView in Cocoa?
- 25. TextMate fare clic per terminare la riga
- 26. jQuery salta o scorri verso una determinata posizione, div o target sulla pagina dal pulsante onclick
- 27. Selenio, come si controlla la posizione di scorrimento
- 28. Mostra la posizione corrente del cursore nel selenio
- 29. Tasti di invio controllo + clic in selenio con collegamenti Python
- 30. Come fare clic su un elemento visibile dopo il passaggio del mouse sul selenio?
Ottimo !! A quale classe appartengono? – davids
Sono nell'oggetto di selenio. In realtà ho appena trovato la documentazione dell'API online, aggiornando la risposta. – Ewan
Ancora una domanda. Come lo usi effettivamente? Sono abituato a lavorare con oggetti di webdriver, ma non ho mai usato questo – davids