使用selenium 時常常需要獲取頁面元素的值,而有些時候頁面元素並沒有恆定的id或者class, 此時使用xpath最為方便。
比如如下結點,想要獲取span元素的值。
<div id="transTarget" dir="auto" class="input__target__text" style="height: 156px;">
<p data-section="0" class="">
<span data-section="0" data-sentence="0" class="">calm</span></p>
</div>
在使用xpath時不需要直接求出text,否則會拋出錯誤。
invalid selector: The result of the xpath expression "//div[@id="transTarget"]/p/span/text()" is: [object Text]. It should be an element.
應使用
result = chrome.find_element_by_xpath('//div[@id="transTarget"]/p/span') text = result.text