3 回答

TA貢獻(xiàn)1859條經(jīng)驗(yàn) 獲得超6個(gè)贊
試試下面的代碼。
items1=[item.text for item in driver.find_elements_by_xpath('//div[@class="media"][last()-1]//div[@class="media-content"]')]
items2=[item.text for item in driver.find_elements_by_xpath('//div[@class="media"][last()]//div[@class="media-content"]')]
if items1==items2:
print("pass")
else:
print("fail")

TA貢獻(xiàn)1844條經(jīng)驗(yàn) 獲得超8個(gè)贊
對(duì)我來(lái)說(shuō),anser 是(如果在 singal div[@class="media-content"] 節(jié)點(diǎn)中有多個(gè) div[@class="media-content"] 元素):
media_last = driver.find_elements_by_xpath('//div[@class="media"][last()]//div[@class="media-content"]')
media_last = [a.gettext() for a in media_last]
media_not_last =driver.find_elements_by_xpath('//div[@class="media"][last()-1]//div[@class="media-content"]')
media_not_last = [a.gettext() for a in media_not_last]
if media_last == media_not_last:
break
您無(wú)法在元素?cái)?shù)組中獲取方法 gettext
或者如果你想得到一個(gè)單一的元素,請(qǐng)使用 find_element_by_xpath 方法

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超10個(gè)贊
我使用您的 html 測(cè)試了以下內(nèi)容,并且得到了您期望的行為:
from selenium import webdriver
driver = webdriver.Chrome()
driver.get(r'file:///<path to local html file>') # Used local html file for testing purposes
el1 = driver.find_elements_by_xpath('//div[@class="media"][last()]//div[@class="media-content"]')
el2 = driver.find_elements_by_xpath('//div[@class="media"][last()-1]//div[@class="media-content"]')
if el1[0].text == el2[0].text:
print('Yes')
else:
print('No')
要理解的一件事是driver.find_elements_by_path()返回一個(gè)list對(duì)象。因此,即使看起來(lái)您正在針對(duì)頁(yè)面中的特定元素,它們也存儲(chǔ)在list對(duì)象中,如果您希望訪問(wèn)元素的文本,您應(yīng)該以這種方式引用它們。
添加回答
舉報(bào)