1.xpath較複雜的定位方法:
現在要引用id為「j_password」的input元素,可以像下面這樣寫:
webelement password = driver.findelement(by.xpath("//*[@id='j_login_form']/dl/dt/input[@id='j_password']"));
其中//*[@id=』 j_login_form』]這一段是指在根元素下查詢任意id為j_login_form的元素,此時相當於引用到了form元素。後面的路徑必須按照原始碼的層級依次往下寫。按照圖所示**中,我們要找的input元素包含在乙個dt標籤內,而dt又包含在dl標籤內,所以中間必須寫上dl和dt兩層,才到input這層。當然我們也可以用*號省略具體的標籤名稱,但元素的層級關係必須體現出來,比如我們不能寫成//*[@id='j_login_form']/input[@id='j_password'],這樣肯定會報錯的。
另外一種寫法:webelement password = driver.findelement(by.xpath("//*[@id='j_login_form']/*/*/input[@id='j_password']"));
2.xpath的模糊定位方法:
a. 用contains關鍵字,定位**如下:
driver.findelement(by.xpath(「//a[contains(@href, 『logout』)]」));
這句話的意思是尋找頁面中href屬性值包含有logout這個單詞的所有a元素,由於這個退出按鈕的href屬性裡肯定會包含logout,所以這種方式是可行的,也會經常用到。其中@後面可以跟該元素任意的屬性名。
b. 用start-with,定位**如下:
driver.findelement(by.xpath(「//a[starts-with(@rel, 『nofo』)]));
這種方式一般用於知道超連結上顯示的部分或全部文字資訊時,可以使用。
這句的意思是尋找rel屬性以nofo開頭的a元素。其中@後面的rel可以替換成元素的任意其他屬性
c. 用text關鍵字,定位**如下:
driver.findelement(by.xpath(「//a[contains(text(), 』退出』)]));
直接查詢頁面當中所有的退出二字,根本就不用知道它是個a元素了。這種方法也經常用於純文字的查詢
d.如果知道超連結元素的文字內容,也可以用
driver.findelement(by.xpath(「//a[contains(text(), 』退出』)]));
3.xpath 關於網頁中的動態屬性的定位,例如,asp.net 應用程式中動態生成 id 屬性值,可以有以下四種方法:
a.starts-with 例子: input[starts-with(@id,'ctrl')] 解析:匹配以 ctrl開始的屬性值
b.ends-with 例子:input[ends-with(@id,'_username')] 解析:匹配以 username 結尾的屬性值
c.contains() 例子:input[contains(@id,'username')] 解析:匹配含有 username 屬性值
參考**:
xpath詳解:
xpath mysql xpath 定位小技巧
絕對路徑定位 find element by xpath html body div 1 2 input 表示從根節點開始,body中的第乙個div標籤下的第二個標籤 表示匹配所有型別標籤 下的input標籤。注意這個同級下第幾個元素是從1開始的,同級下只有乙個該標籤就不用指定第幾個了,比如上面的i...
定位方法之xpath定位
1 xml 可擴充套件標記語言,是對html的擴充套件,語法和html相似,只是它的標記和屬性是可以自己根據業務需要來定義的,而html裡的標記和屬性都是固定的。2 xpath xml path,就是xml路徑語言,是在xml裡查詢元素或屬性的一種技術,用描述元素在整個檔案裡所在路徑的方式來查詢資訊...
定位方法之css selector定位
1.css層疊樣式表,修飾html或xml的檔案樣式,css裡包含selector選擇器的技術,可以選擇介面上的元素 也就是我們所說的定位元素 可以像xpath一樣描述元素的特徵或路徑。優點是比xpath定位元素速度更快 更簡潔短小,缺點是功能沒有xpath強大,不能向前查詢。css定位和xpath...