Selenium+Java(四)Selenium Xpath元素定位


前言

關於Selenium元素定位,這是最后一篇博客。

Xpath定位可以實現的功能 Selenium+Java(三)Selenium元素定位中講的定位方式也可以實現,具體要用那種定位方式要根據自己的實際情況來選擇,靈活運用。

成功定位到元素才是王道。

一、Xpath層級與索引定位

以12306官網為例:如果想要定位此li標簽中的內容,li標簽中的內容如果沒有相應的屬性,此時可以先定位到li的上層元素div或者ul,由上層元素再向下尋找。也可以由下層元素向上尋找,向上尋找與向下尋找差別不大使用“..”即可回到上層元素。

 

//引用IE瀏覽器驅動
System.setProperty("webdriver.ie.driver", "./src/driver/IEDriverServer.exe");
//創建IE瀏覽器對象
InternetExplorerDriver driver = new InternetExplorerDriver();
//瀏覽器最大化
driver.manage().window().maximize();
//等待瀏覽器加載完畢
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
//打開網站
driver.get("https://www.12306.cn/index/");
//Xpath定位,先尋找到class屬性為news-index的div元素,由此div向下尋找ul中的第一個li標元素中的a元素,如果需要尋找第n個li標簽,只需要把1修改成n。
driver.findElement(By.xpath("//div[@Class='news-index']/ul/li[1]/a"));

二、Xpath屬性定位

以百度為例:此定位通過可通過標簽的屬性(id、name、class、其他屬性)對元素進行定位

//引用IE瀏覽器驅動
System.setProperty("webdriver.ie.driver", "./src/driver/IEDriverServer.exe");
//創建IE瀏覽器對象
InternetExplorerDriver driver = new InternetExplorerDriver();
//瀏覽器最大化
driver.manage().window().maximize();
//等待瀏覽器加載完畢
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
//打開網站
driver.get("https://www.baidu.com/");
//Xpath定位
driver.findElement(By.xpath("//*[@id='kw']"));

三、Xpath模糊定位

//引用IE瀏覽器驅動
System.setProperty("webdriver.ie.driver", "./src/driver/IEDriverServer.exe");
//創建IE瀏覽器對象
InternetExplorerDriver driver = new InternetExplorerDriver();
//瀏覽器最大化
driver.manage().window().maximize();
//等待瀏覽器加載完畢
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
//打開網站
driver.get("https://www.12306.cn/index/");
//Xpath模糊定位屬性
driver.findElement(By.xpath("//*[contains(@data-href,'index.h')]"));
//Xpath模糊定位開頭
driver.findElement(By.xpath("//*[starts-with(@id,'search_o')]"));
//Xpath模糊定位顯示文本
driver.findElement(By.xpath("//*[contains(text(),'我的1230')]"));


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM