Selenium中相對XPath和絕對XPath的區別是什麼?


我們可以透過兩種方式建立xpath – 相對路徑和絕對路徑。絕對xpath 包含從根節點到我們想要識別的元素的完整路徑。

絕對xpath以/ 符號開頭。絕對xpath的一個缺點是,如果從根節點到元素的任何屬性發生更改,我們的絕對xpath將失效。

相對xpath 從我們想要識別的元素開始,而不是從根節點開始。相對xpath以// 符號開頭。它主要用於自動化,因為即使在DOM中刪除或添加了元素,相對xpath也不會受到影響。

絕對xpath冗長且難以維護(html/body/tagname/…)。而相對xpath簡短(//*[@attribute='value'])。讓我們在下面的頁面上識別主頁選單:

讓我們研究一下從根節點開始的主頁元素的HTML程式碼

此元素的絕對xpath是/html/body/div[1]/div/div[1]/a。它可以透過瀏覽器控制檯(按F12開啟)中的表示式$x("/html/body/div[1]/div/div[1]/a")進行驗證。圖片顯示了從絕對xpath表示式獲得的匹配元素。

此元素的相對xpath是//a[@title='TutorialsPoint - Home']。它可以透過瀏覽器控制檯中的表示式$x("//a[@title='TutorialsPoint - Home']")進行驗證。圖片顯示了從相對xpath表示式獲得的匹配元素。

更新於:2023年11月8日

27K+ 次瀏覽

啟動您的職業生涯

透過完成課程獲得認證

開始學習
廣告