3 回答

TA貢獻(xiàn)2065條經(jīng)驗(yàn) 獲得超14個(gè)贊
xpath
在您的代碼中嘗試以下-
driver.find_element_by_xpath('//*[local-name()="svg" and @aria-label="Like"]/parent::span/parent::div/parent::button').click()
希望它能檢測(cè)到按鈕。讓我知道結(jié)果。

TA貢獻(xiàn)1155條經(jīng)驗(yàn) 獲得超0個(gè)贊
為什么這些不起作用:
//button[@class='wpO6b ']/descendant::svg[@aria-label='Like']
//button[@class='wpO6b ']//svg[@aria-label='Like']
您選擇svg元素而不是按鈕。您必須將svg部分放在謂詞中。
//button[@class='wpO6b' and descendant::svg[@aria-label='Like']]
class這個(gè)幾乎不錯(cuò),但是由于元素的屬性中有一個(gè)空格,所以button它不起作用。可以使用contains此處更安全的功能對(duì)其進(jìn)行相應(yīng)修復(fù):
//button[contains(@class,'wpO6b') and descendant::svg[@aria-label='Like']]
選擇按鈕的另一種方法(使用ancestor軸和更強(qiáng)大的謂詞):
//svg[@aria-label="Like" and @fill="#262626"]/ancestor::button[1][contains(@class,"wpO6b")]
如果您正在處理namespaces,請(qǐng)使用以下表達(dá)式:
//*[local-name()='button'][contains(@class,'wpO6b') and descendant::*[local-name()='svg'][@aria-label='Like']]

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超6個(gè)贊
你可以寫 xpath:
//svg[@aria-label='Like']/ancestor::button[1]
添加回答
舉報(bào)