2014-03-06 18 views
5

我要訪問標籤的文本,但無論get_text()也不text財產正在爲下面的HTML:get_text()或文本屬性不工作標籤

<label class="checkbox"> 
<input type="checkbox" value="BATSMC"> 
BATS Multicast PITCH 
</label> 

例如,在這裏我要得到值:BATS Multicast PITCH

在硒的Python代碼:

print e.text 

是給空格,get_text()是給下面的錯誤:

AttributeError: 'WebElement' object has no attribute 'get_text' 

我得到正確的Web元素,是能夠訪問其他屬性像大小,位置,父母等我預計「文本」的工作。誰能幫忙?

回答

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>沒有正確關閉...

+0

也給出了「空白」值。 Yaa,沒有關閉,是這樣的。其他解決方案? –

+0

您是否爲兩個元素嘗試了'get_attribute('innerHTML')'? –

+0

get_attribute('innerHTML')爲

0

嘗試使用innerText屬性得到只有標籤標籤中的文本。

e = driver.find_element_by_tag_name('label') 
print e.get_attribute('innerText') 
+0

結果爲「無」。 –