How can I get the current contents of an element in webdriver How can I get the current contents of an element in webdriver python python

How can I get the current contents of an element in webdriver


I believe prestomanifesto was on the right track. It depends on what kind of element it is. You would need to use element.get_attribute('value') for input elements and element.text to return the text node of an element.

You could check the WebElement object with element.tag_name to find out what kind of element it is and return the appropriate value.

This should help you figure out:

driver = webdriver.Firefox()driver.get('http://www.w3c.org')element = driver.find_element_by_name('q')element.send_keys('hi mom')element_text = element.textelement_attribute_value = element.get_attribute('value')print elementprint 'element.text: {0}'.format(element_text)print 'element.get_attribute(\'value\'): {0}'.format(element_attribute_value)driver.quit()


element.get_attribute('innerHTML')


I know when you said "contents" you didn't mean this, but if you want to find all the values of all the attributes of a webelement this is a pretty nifty way to do that with javascript in python:

everything = b.execute_script(    'var element = arguments[0];'    'var attributes = {};'    'for (index = 0; index < element.attributes.length; ++index) {'    '    attributes[element.attributes[index].name] = element.attributes[index].value };'    'var properties = [];'    'properties[0] = attributes;'    'var element_text = element.textContent;'    'properties[1] = element_text;'    'var styles = getComputedStyle(element);'    'var computed_styles = {};'    'for (index = 0; index < styles.length; ++index) {'    '    var value_ = styles.getPropertyValue(styles[index]);'    '    computed_styles[styles[index]] = value_ };'    'properties[2] = computed_styles;'    'return properties;', element)

you can also get some extra data with element.__dict__.

I think this is about all the data you'd ever want to get from a webelement.