xpath是一種選擇器,是一種xml路徑語言,在自動化測試過程中能夠準確的定位頁面的元素,可以說xpath能解決99%的元素定位的問題。
/ 表示絕對路徑,絕對路徑是指從根目錄開始
//表示相對路徑
.表示當前層
..表示上一層
*表示萬用字元
@表示屬性
屬性的判斷條件表示式
/html//div 表示選擇根目錄下的所有的子孫後代節點中的div節點,//表示相對路徑
//div 表示選擇所有的div節點
//div/div 表示選擇所有的div節點的子節點中含有div的節點
//div[@id='input'] 表示選擇乙個id為』input』的div節點
//table//input[@id='user'] 表示選擇table的子孫後代中id為user的input節點
//input[@name='identity' and @class='volvo'] 選擇乙個name為identity並且class為volvo的input節點
//input[@name='identity' or @class='volvo'] 選擇乙個name為identity,或者class為volvo的節點
//input[@name='identity' or @class='volvo'][1] 選擇第乙個name為identity,或者class為volvo的節點
//input[@name='identity' or @class='volvo'][last()] 選擇最後乙個name為identity,或class為volvo的
1.contains()://div[contains(@id,'in')] ,表示選擇id中包含有』in』的div節點
3.last():div[last()-1]:倒數第二個
4.starts-with()://div[starts-with(@id,'in')] ,表示選擇以』in』開頭的id屬性的div節點
5.not():表示否定,//input[@name=『identity』 and not(contains(@class,『a』))],表示匹配出name為identity並且class的值中不包含a的input節點。
ancestor 選取當前節點的所有先輩(父,祖父等)
ancestor-or-self 選取當前節點的所有先輩(父,祖父等)以及當前節點本身
attribute 選取當前節點的所有屬性
child 選取當前節點的所有子元素
descendant 選取當前節點的所有後代元素(子,孫等)
descendant-or-self 選取當前節點的所有後代元素(子,孫等)及當前節點本身
following 選取當前節點的結束標籤時候的所有節點
following-sibling 選取當前節點之後的所有同級節點
namespace 選取當前節點的所有命名空間節點
parent 選取當前節點的父節點
preceding 選取當前節點開始標籤之前的所有節點
priceding-sibling 選取當前節點之前的所有同級節點
self 選取當前節點
//div[@id='radio']//label[text()='saab']/preceding-sibling::input[1] 選擇label的text為saab的節點之前的同級節點中為input節點的第乙個
ancestor:選取當前節點的所有先輩(父、祖父等)。
//input[@id=''kw]/ancestor::form[屬性或索引] ##input[@id=''kw]唯一
//input[ancestor::form[@id='form'] and @name='wd'][1] ##form[@id='form']唯一,後面加屬性[1]來限制
preceding-sibling:選取當前節點之前的所有同級節點。
//input[preceding-sibling::input[@id='kw'] and @name='rsv_spt'] ##input[@id='kw']唯一找其同級input
等於//input[@id='kw']/follow-sibling::input[@name='rsv_spt']
//div[preceding-sibling::div/div/a[contains(text(),'三星')]]/a[text()='刪除']
descendent:選取當前節點的所有後代元素(子、孫等)。
//div[@id='dvcontainer']/descendent::span[text(),'刪 除'] ##id='dvcontainer'唯一
following-sibling(當前節點結束後的所有兄弟姐妹):
//input[@id='kw']/following-sibling::input ##選取input[@id='kw']節點結束後的所有input兄弟姐妹(同級)
child:選取當前節點的所有子元素。
//span[child::input[@id='su1']] ##input[@id='su1']明確
ancestor: //input[@id='su1']/ancestor::span ##效果等於上面
selenium XPATH元素定位
規則1 查詢匹配的元素值 元素名 元素值 and contains 元素名,元素值 1.1 查詢所有元素 1.2 元素名 元素值 查詢符合條件 元素名為元素值 的元素 1.3 contains 元素名,元素值 查詢符合條件 元素名包含元素值 的元素 1.4 and 多個條件合併查詢 my loc b...
selenium xpath定位元素
xpath獲取 f12開啟瀏覽器除錯視窗,找到元素對應html 右鍵 copy copy xpath xpath 是xml的查詢語言,和sql的角色很類似。以下面xml為例,介紹xpath 的語法。empire burlesque bob dylan 10.90 hide your heart bo...
selenium xpath定位相同屬性的元素
1 先定位到父節點,再從父節點找指定節點 例如 注意不能直接用 driver.find element by xpath id branch inquiry find element by class name city picker span 用法 coding utf 8 from seleni...