Estoy trasladando algunas pruebas de Selenium a WebDriver. Mi problema es que no puedo encontrar un equivalente para selenium.wait_for_condition. ¿Los enlaces de Python tienen esto en este momento, o todavía está planeado?selenium.wait_for_condition equivalent en los enlaces de Python para WebDriver
Respuesta
Actualmente no es posible usar wait_for_condition con WebDriver. El código de selenio de python proporciona la clase DrivenSelenium para acceder a los antiguos métodos de selenio, pero no puede esperar wait_for_condition. The selenium wiki has some info on that.
Su mejor opción es utilizar la clase WebDriverWait. Esta es una clase auxiliar que periódicamente ejecuta una función esperando que devuelva True. Mi uso general es
driver = webdriver.Firefox()
driver.get('http://example.com')
add = driver.find_element_by_id("ajax_button")
add.click()
source = driver.page_source
def compare_source(driver):
try:
return source != driver.page_source
except WebDriverException:
pass
WebDriverWait(driver, 5).until(compare_source)
# and now do some assertions
Esta solución no es en absoluto ideales .. El try/except es necesario para situaciones en las que se retrasa el ciclo de solicitud de página/respuesta a la espera de alguna actividad ajax para completar. Si se llama a compare_source get en medio del ciclo de solicitud/respuesta lanzará una WebDriverException.
El test coverage for WebDriverWait también es útil a la vista.
La vinculación de Java incluye una clase de espera. Esta clase verifica repetidamente una condición (con reposo entre) hasta que se alcanza un tiempo de espera. Si puede detectar la finalización de su Javascript utilizando la API normal, puede tomar el mismo enfoque.
aquí está mi versión de la respuesta de Greg Sadetsky, poner en una función:
def click_n_wait(driver, button, timeout=5):
source = driver.page_source
button.click()
def compare_source(driver):
try:
return source != driver.page_source
except WebDriverException:
pass
WebDriverWait(driver, timeout).until(compare_source)
que haga clic en el botón, espera a que el DOM para cambiar y luego regresa.
- 1. python - strtotime equivalent?
- 2. ¿Webdriver admite pagefactory para Python?
- 3. ¿Hay enlaces de lenguaje puramente funcionales disponibles para Selenium2/WebDriver?
- 4. Python getattr equivalent for dictionaries?
- 5. Cómo mouseOver en Python WebDriver
- 6. selenio WebDriver ejemplo en Python
- 7. ¿Cómo uso el controlador HtmlUnit con Selenium a través de los enlaces de Python?
- 8. Python Selenium WebDriver drag-and-drop
- 9. Utilizando enlaces de Python, Selenium WebDriver click() no funciona a veces.
- 10. Enlaces de Python SVN para Windows
- 11. Para enviar tres teclas usando send_keys() en selenium python webdriver
- 12. Curl equivalent en nodejs?
- 13. Maximice WebDriver (Selenium 2) en Python
- 14. Scrapy Crawler en python no puede seguir los enlaces?
- 15. PathCanonicalize equivalent en C#
- 16. join equivalent en Windows
- 17. cv2 y BGR2YCrCb no funcionan con los enlaces de Python
- 18. ¿Cómo unir enlaces en Python para obtener un ciclo?
- 19. ¿Cuál es la propiedad de Java Equivalent of Python()?
- 20. enlaces de python, ¿cómo funciona?
- 21. A readOnly Equivalent para HTML Select Elements
- 22. Enlaces de OpenCV Python para el algoritmo de GrabCut
- 23. Scikit-learn equivalent for C++?
- 24. /sharedtypes equivalent for svcutil.exe?
- 25. find_by_sql equivalent for mongoid?
- 26. Pygame equivalent for Ruby?
- 27. javascript equivalent of 'mouseleave' para interacciones táctiles
- 28. threading.local equivalent for twisted.web?
- 29. Programación Web Frameworks Generación "//" para los enlaces
- 30. Parse_url equivalent in grails/groovy?
Parece que puede probar la visibilidad. 'from selenium.webdriver.support import expected_conditions como ec' y luego' ec.visibility_of (olmo) '. El objeto de retorno de eso es 'selenium.webdriver.support.expected_conditions.visibility_of' pero no he descubierto cómo sacarle visibilidad. – huggie