前言html
關於Selenium元素定位,這是最後一篇博客。web
Xpath定位能夠實現的功能 Selenium+Java(三)Selenium元素定位中講的定位方式也能夠實現,具體要用那種定位方式要根據本身的實際狀況來選擇,靈活運用。瀏覽器
成功定位到元素纔是王道。post
1、Xpath層級與索引定位網站
以12306官網爲例:若是想要定位此li標籤中的內容,li標籤中的內容若是沒有相應的屬性,此時能夠先定位到li的上層元素div或者ul,由上層元素再向下尋找。也能夠由下層元素向上尋找,向上尋找與向下尋找差異不大使用「..」便可回到上層元素。url
//引用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"));
2、Xpath屬性定位spa
以百度爲例:此定位經過可經過標籤的屬性(id、name、class、其餘屬性)對元素進行定位code
//引用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']"));
3、Xpath模糊定位htm
//引用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')]"));