get_text()或text属性在标签中不起作用
我想获取标签的文本内容,但在下面的HTML中,get_text()
和text
属性都没法用:
<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'
我能正确找到网页元素,也能访问其他属性,比如大小、位置、父元素等等。我本以为“text”能正常工作。有没有人能帮帮我?
2 个回答
0
试着使用 innerText
属性,这样可以只获取标签内的文本内容。
e = driver.find_element_by_tag_name('label')
print e.get_attribute('innerText')
5
上面HTML中的<label>
标签没有文本属性。
如果你想获取“BATS Multicast PITCH”这个字符串,你需要从<input>
标签中获取。例如,下面的代码可以打印出这个字符串:
e = driver.find_element_by_tag_name('input')
print e.text
如果你想获取<label>
标签里面的所有内容,可以使用:
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
)来找到这些特定的元素。
顺便说一下,我刚注意到上面的<input>
标签没有正确关闭……