Tengo este HTML:
1A
- Ejecutando selenium detrás de un servidor proxy
- Python con selenium: no se puede localizar el elemento que realmente existe
- Obtener el valor de un cuadro de entrada usando Selenium (Python)
- ¿Cómo usar Selenium con Python?
- selenium.common.exceptions.WebDriverException: Mensaje: conexión rechazada
2A
3A
4A
- simular un onclick con selenium python
- Chromedriver usando selenium para raspar
- Selenium WebDriver: Firefox se inicia, pero no abre la URL
- La contraseña y el nombre de usuario de autenticación de Windows de Python no funcionan
- ¿Cómo deshabilitar Flash en Firefox con Selenium en Python?
5A
6A
7A
Uso el siguiente código para obtener el primer elemento de etiqueta p
:
elem = driver.find_element_by_id('one')
Ahora, ¿cómo encontrar al próximo hermano de elem
?
Quiero corregir la respuesta de Mark Rowlands. La syntax correcta será
driver.find_element_by_xpath("//p[@id='one']/following-sibling::p")
Utilizando Xpath:
driver.find_element_by_xpath("//p[@id, 'one']/following-sibling::p")
Necesitamos pasar elem
a una función de JavaScript y ejecutarlo. No podemos usar su nombre dentro de la función JS cuando le estamos pasando elem
, pero podemos usar arguments
. Aquí hay un ejemplo de cómo puedes conseguir al próximo hermano de elem
:
next_sibling = driver.execute_script(""" return arguments[0].nextElementSibling """, elem)
Eche un vistazo a este pequeño ejemplo de cómo funciona la función execute_script()
:
sum = driver.execute_script(""" console.log(arguments[0].innerHTML) // will print innerHTML of the element in console logs of the page return arguments[1] + arguments[2] """, elem, 5, 6) print(sum) # 11
Javascript es en sí mismo poderoso para realizar estas operaciones, escribe este código –
document.getElementById("one");
O simplemente puedes usar jQuery –
$("#one");