我想访问标签文本,但get_text()
和text
属性都不适用于以下HTML:
<label class="checkbox">
<input type="checkbox" value="BATSMC">
BATS Multicast PITCH
</label>
例如,我想在此处获取值:BATS Multicast PITCH
。
在Selenium-Python代码中:
print e.text
给出空格,get_text()
给出以下错误:
AttributeError: 'WebElement' object has no attribute 'get_text'
我正在获取正确的网络元素,并且能够访问其他属性,如大小,位置,父级等。我希望“文本”能够正常工作。有人可以帮忙吗?
答案 0 :(得分:5)
上述HTML中的<label>
标记没有文字属性。
如果要检索BATS Multicast PITCH
字符串,则需要从<input>
标记中获取该字符串。例如,以下代码将打印此字符串:
e = driver.find_element_by_tag_name('input')
print e.text
如果您想要检索<label>
标记的整个内部HTML,那么您可以使用:
e = driver.find_element_by_tag_name('label')
print e.get_attribute('innerHTML')
这将打印"<input type="checkbox" value="BATSMC">BATS Multicast PITCH
。
当然,您的HTML中可能还有其他<label>
和<input>
标记,因此您需要使用其他方法(find_element_by_tag_name
除外)才能找到这些标记具体要素。
BTW,我刚才注意到上面HTML中的<input>
标记没有正确关闭...
答案 1 :(得分:0)
尝试使用innerText
属性仅获取标签内的文字。
e = driver.find_element_by_tag_name('label')
print e.get_attribute('innerText')