get_text()或text属性不适用于标签

sel*_*ser 5 python python-2.7 selenium-webdriver

我想访问标签的文本,但是以下HTML 既get_text()没有text属性也适用:

<label class="checkbox">
<input type="checkbox" value="BATSMC">
BATS Multicast PITCH
</label>
Run Code Online (Sandbox Code Playgroud)

例如,在这里我想获得价值:BATS Multicast PITCH.

在Selenium-Python代码中:

print e.text 
Run Code Online (Sandbox Code Playgroud)

给出空格并get_text()给出以下错误:

AttributeError: 'WebElement' object has no attribute 'get_text'
Run Code Online (Sandbox Code Playgroud)

我正在获取正确的Web元素,并能够访问其他属性,如大小,位置,父级等.我希望"文本"工作.有人可以帮忙吗?

bar*_*nos 5

<label>上述HTML中的标记没有文本属性.

如果要检索BATS Multicast PITCH字符串,则需要从<input>标记中获取它.例如,以下代码将打印此字符串:

e = driver.find_element_by_tag_name('input')
print e.text
Run Code Online (Sandbox Code Playgroud)

如果要检索标记的整个内部HTML <label>,则可以使用:

e = driver.find_element_by_tag_name('label')
print e.get_attribute('innerHTML')
Run Code Online (Sandbox Code Playgroud)

这将打印"<input type="checkbox" value="BATSMC">BATS Multicast PITCH.

当然,您的HTML中可能还有其他<label><input>标记,因此您需要使用不同的方法(除了find_element_by_tag_name)才能找到这些特定元素.

顺便说一下,我刚注意到<input>上面HTML 中的标签没有正确关闭......