雖然通過螢火蟲找到相關的XPath:它會建立像XPath中.//和// *有什麼區別?
.//*[@id='Passwd']
---------如果我們不使用時的點開始什麼表示?只需在Xpath中添加
//*
它會突出顯示---各種頁面元素----------它代表什麼?
以下是用於Gmail密碼字段的XPath。 *
的意義是什麼?
.//*[@id='Passwd']
//child::input[@type='password']
雖然通過螢火蟲找到相關的XPath:它會建立像XPath中.//和// *有什麼區別?
.//*[@id='Passwd']
---------如果我們不使用時的點開始什麼表示?
只需在Xpath中添加//*
它會突出顯示---各種頁面元素----------它代表什麼?
以下是用於Gmail密碼字段的XPath。 *
的意義是什麼?
.//*[@id='Passwd']
//child::input[@type='password']
這些表達式所有選擇不同的節點集:
.//*[@id='Passwd ']
的'「。開始意味着當前處理在當前節點處開始。 '*'選擇從當前節點遞減的所有元素節點,其中@id
-attribute-value等於'Passwd'。
如果我們在開始時不使用點,它表示什麼?
那麼你還是選擇用@id
-attribute價值的整個文件等於「passwd」文件的所有元素節點。
只需添加// *在XPath - 它突出---各種頁面元素
這將選擇整個文檔中的所有元素節點。
下面提到:XPatht的Gmail密碼字段是真實的什麼是*的意義?
.//*[@id='Passwd']
這將選擇從中@id
-attribute值等於「的passwd」當前節點降序所有元素節點。
//子::輸入[@類型= '密碼']
這將選擇名爲input
其中@type
-attribute值是等於 '密碼' 的所有子元素節點。軸前綴child::
可能被省略,因爲它是默認行爲。
選擇合適表達式的語法解釋爲here at w3school.com。
並且軸(當前處理點)被解釋爲here at another w3school.com page。
如果有疑問,請看下面的@ kjhughes的好答案。 –
@MathiasMüller:我糾正了我答案的缺陷。 – zx485
現在好多了,謝謝編輯。請注意,來自w3schools.com的信息通常不準確,例如「節點」和「元素節點」之間的混淆可能源自這個不正確的網頁。 –
XPath中的點被稱爲「上下文項表達」。如果你在表達式的開頭加上一個點,它會使它具體化到上下文中。換句話說,它將在您調用「通過XPath查找元素」方法的節點上下文中搜索元素id="Passwd"
。
的*
在.//*[@id='Passwd']
有助於匹配任何元素與id='Passwd'
。
有在這裏打球幾個不同的,關鍵的XPath概念...
絕對VS相對的XPath(/
VS .
)
/
引入絕對位置路徑,從文檔的根部開始ument。.
從上下文節點開始引入相對位置路徑。命名元件VS任何元件(ename
VS *
)
/ename
選擇一個ename
根元素
./ename
選擇當前節點的所有ename
子元素。/*
選擇根元素,而不考慮名稱。
./*
或*
選擇上下文節點的所有子元素,而不管名稱如何。後代或自身軸線(//*
)
//ename
選擇文檔中的所有ename
元素。
.//ename
選擇上下文節點處或下方的所有ename
元素。//*
選擇文檔中的所有元素,而不考慮名稱。
.//*
選擇位於上下文節點處或下方的所有元素,無論名稱如何。這些概念記住,這裏有回答您的具體問題...
.//*[@id='Passwd']
指或 電流下選擇所有元素上下文節點的id
屬性值等於 'Passwd'
。//child::input[@type='password']
可以簡化爲 //input[@type='password']
和手段,選擇所有input
元件 文檔中具有等於'password'
一個type
屬性值。這個答案應該是被接受的答案,因爲它是最準確和最完整的,在我看來。 –
這對我來說是一個簡單的開始:http://www.zvon.org/xxl/XPathTutorial/General/examples.html – SiKing