Подтвердить что ты не робот

Как получить текущее содержимое элемента в webdriver

Я должен думать об этом неправильно.

Я хочу получить содержимое элемента, в данном случае поля формы, на странице, к которой я обращаюсь с помощью Webdriver/Selenium 2

Вот мой сломанный код:

 Element=driver.find_element_by_id(ElementID)
 print Element
 print Element.text

вот результат:

<selenium.webdriver.remote.webelement.WebElement object at 0x9c2392c>

(Обратите внимание на пустую строку) Я знаю, что элемент имеет содержимое, так как я просто набил их там предыдущей командой, используя .sendkeys, и я могу видеть их на фактической веб-странице, пока выполняется script.

но мне нужно вернуть содержимое в данные.

Что я могу сделать, чтобы прочитать это? Предпочтительно в общем виде, чтобы я мог извлекать содержимое из различных типов элементов.

4b9b3361

Ответ 1

Я считаю, что престиминизм был на правильном пути. Это зависит от того, какой элемент он есть. Вам нужно будет использовать element.get_attribute('value') для входных элементов и element.text, чтобы вернуть текст node элемента.

Вы можете проверить объект WebElement с помощью element.tag_name, чтобы узнать, что это за элемент, и вернуть соответствующее значение.

Это поможет вам понять:

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()

Ответ 2

element.get_attribute('innerHTML')

Ответ 3

Мой ответ основан на этом ответе: Как получить текущее содержимое элемента в webdriver просто больше похоже на copy-paste.

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()

Ответ 4

В Java его Webelement.getText(). Не уверен в python.