python - example - ¿Cómo puedo obtener el contenido actual de un elemento en webdriver?
selenium python example (4)
Debo estar pensando en esto mal.
Quiero obtener el contenido de un elemento, en este caso un campo de formulario, en una página a la que estoy accediendo con Webdriver / Selenium 2
Aquí está mi código roto:
Element=driver.find_element_by_id(ElementID)
print Element
print Element.text
aquí está el resultado:
<selenium.webdriver.remote.webelement.WebElement object at 0x9c2392c>
(Observe la línea en blanco) Sé que el elemento tiene contenido, ya que lo rellené allí con el comando anterior usando .sendkeys y puedo verlos en la página web real mientras se ejecuta el script.
pero necesito devolver el contenido a los datos.
¿Qué puedo hacer para leer esto? Preferiblemente de forma genérica para que pueda extraer contenidos de diversos tipos de elementos.
Creo que prestomanifesto estaba en el camino correcto. Depende del tipo de elemento que sea. element.get_attribute(''value'')
usar element.get_attribute(''value'')
para elementos de entrada y element.text
para devolver el nodo de texto de un elemento.
Puede verificar el objeto WebElement con element.tag_name
para descubrir qué tipo de elemento es y devolver el valor apropiado.
Esto debería ayudarte a descubrir:
driver = webdriver.Firefox()
driver.get(''http://www.w3c.org'')
element = driver.find_element_by_name(''q'')
element.send_keys(''hi mom'')
element_text = element.text
element_attribute_value = element.get_attribute(''value'')
print element
print ''element.text: {0}''.format(element_text)
print ''element.get_attribute(/'value/'): {0}''.format(element_attribute_value)
driver.quit()
En Java es Webelement.getText () . No estoy seguro acerca de Python.
Mi respuesta se basa en esta respuesta: ¿Cómo puedo obtener el contenido actual de un elemento en webdriver simplemente como copiar y pegar?
from selenium import webdriver
driver = webdriver.Firefox()
driver.get(''http://www.w3c.org'')
element = driver.find_element_by_name(''q'')
element.send_keys(''hi mom'')
element_text = element.text
element_attribute_value = element.get_attribute(''value'')
print (element)
print (''element.text: {0}''.format(element_text))
print (''element.get_attribute(/'value/'): {0}''.format(element_attribute_value))
element = driver.find_element_by_css_selector(''.description.expand_description > p'')
element_text = element.text
element_attribute_value = element.get_attribute(''value'')
print (element)
print (''element.text: {0}''.format(element_text))
print (''element.get_attribute(/'value/'): {0}''.format(element_attribute_value))
driver.quit()
element.get_attribute(''innerHTML'')