Я хочу извлечь текст между <tag></tag>
(В моем случае, <tr></tr>
). поэтому я использую webelement.textwebelement.text не работает (браузер = webdriver.Firefox)
self.browser = webdriver.Firefox()
table = self.browser.find_element_by_tag_name('table')
....
rows = table.find_elements_by_tag_name('tr')
print rows
for element in rows:
print type(element)
print element.text
print type(element.text)
и выходе:
[<selenium.webdriver.remote.webelement.WebElement object at 0x0151E390>] # <-print rows
<class 'selenium.webdriver.remote.webelement.WebElement'> # <-print type(element)
# <-nothing from print element.text
<type 'unicode'> # <-print type(e.text)
Так что нет ничего от element.text, но теги не является пустым. <tr>blablabla</tr>
У меня нет возможности проверить его на других браузерах.
Проблема с <tr>
Он не видите текст внутри <tr>blabla</tr>
:
rows = table.find_elements_by_tag_name('tr')
будет emplty.
Но увидеть его в <tr><td>blabla</td></tr>
:
rows = table.find_elements_by_tag_name('tr')
for element in rows:
print element.text # <-blabla
Хотя, он не работает на любой вложенного элемента:
<tr><h1>blabla</h1></tr>:
rows = table.find_elements_by_tag_name('tr')
будет emplty. documentation на webelement.text
говорит только
текст
Gets the text of the element.
Его просто не рассматривать текст внутри
<tr>text</tr>
как текст<tr>
элемента, я полагаю.
Покажите нам HTML испытывается против. – Arran
Все нормально с HTML, он отслеживает число элементов, то вернуть правильный element.tag_name '
BTW его проект Django – proxy