我是硒的新手。我正在嘗試單擊一個元素,HTML 結構如下所示:<label> <span> text </span></label>我需要單擊 下的“文本” <span>,整個內容在另一個 span/div/body 等內,我正在嘗試使其動態化,以便我也可以使用不同的文本找到它。我正在使用以下代碼:[...]vote = input("Which option should I vote for you? : ")option = "//label/span[contains(.,'" + vote + "')]\""option = str(option)[...]browser.find_element_by_xpath(option).click()
3 回答

長風秋雁
TA貢獻1757條經驗 獲得超7個贊
額外的雙引號使您的 xpath 無效-這里是這個,轉義的一個:
"')]\""
當option
字符串被構造,所述的xpath結束
//label/span[contains(.,'text')]"
,"
最后打破它的地方。
放下它,你會好起來的:
option = "//label/span[contains(.,'" + vote + "')]"
您不必強制轉換option
為字符串 - 它已經是這種類型。此外,這種字符串構造方式 - 使用字符串格式 - 更“pythonic”:
option = "//label/span[contains(.,'{}')]".format(vote)

富國滬深
TA貢獻1790條經驗 獲得超9個贊
您可以使用 CSS Selector,但是在不知道 DOM 其余部分的結構的情況下,這可能不夠獨特,無法可靠地獲取您想要的元素:
find_element_by_css_selector("label span")
添加回答
舉報
0/150
提交
取消