usar - Python Selenium: Encuentra atributos de objetos usando xpath
scraping python 3 (3)
Ciertamente, sé que esto se publicó hace más de 2 años, pero me gustaría agregarle un poco a lo que se omitió. Selenio proporciona palabras integradas que podrían usarse para extraer el texto que se encuentra entre las etiquetas o los valores de los atributos reales dentro de las etiquetas.
${XPATH} xpath=(//td[@title=''mytitle'']/../td)[2]
Aquí hay un ejemplo rápido:
${THE_NAME}= Get Text ${XPATH}
Soy nuevo en xpath, tratando de obtener el valor del "valor" utilizando xpath:
<input type="submit" value=" Search " class="long searchButton" style="width:190px !important;">
mientras que es fácil encontrar el elemento por "type="submit"
como:
browser.find_elements_by_xpath("//*[@type=''submit'']")
No he podido averiguar cómo obtener los valores que necesito, como:
browser.find_elements_by_xpath("//*[@type=''submit'']/@value")
de alguna manera da un error:
expression "//*[@type=/'submit/']/@value" is: [object Attr]. It should be an element
¿Alguna idea de como resolver esto?
EDIT: La xpath es correcta, pero "devuelve" un atributo obj y, como no es un elemento, no está permitido. No puedo encontrar un método como get_attr_by_xpath (), o algo similar.
Finalmente utilicé get_attribute("value")
como:
for i in browser.find_elements_by_xpath("//*[@type=''submit'']"):
print i.get_attribute("value")
Seria asi
browser.find_elements_by_xpath("//*[@type=''submit'']/@value").text
Actualizar:
Con la función utilizada por usted, solo podemos extraer el elemento, no su atributo. Para obtener su atributo, la expresión debería ser algo como esto.
browser.find_elements_by_xpath("//*[@type=''submit'']").get_attribute("value")