前言web
使用Selenium作元素定位的時候,須要用到HTML的知識,因此最好是能懂得HTML的基本知識。瀏覽器
1、頁面元素的查看(以百度爲例)網站
打開IE瀏覽器,點擊F12進入開發者模式,點擊圖中紅圈圈中的小箭頭後單擊須要查看的元素(如百度輸入框),在DOM Explorer中就會把代碼定位過去。spa
2、元素的定位code
一、根據元素id進行定位對象
//引用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/"); //根據id進行元素定位 driver.findElement(By.id("kw")).sendKeys("大風北吹真帥");
二、根據元素name進行定位blog
//引用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/"); //根據name進行元素定位 driver.findElement(By.name("wd")).sendKeys("大風北吹真帥");
三、根據元素class進行定位ip
//引用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/"); //根據class進行元素定位 driver.findElement(By.className("s_ipt")).sendKeys("大風北吹真帥");
四、根據元素文本進行定位ci
//引用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/"); //根據id進行元素定位 driver.findElement(By.linkText("新聞"));
五、根據元素部分文本進行定位開發
//引用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/"); //根據部分文本進行元素定位 driver.findElement(By.partialLinkText("更多"));
六、根據元素tag進行定位
tag定位每每用來定義一類標籤,若是頁面中有多個相同的標籤的元素,使用此方法進行定位就不太實用,不推薦使用此方法。
//引用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/"); //根據tag進行元素定位 driver.findElement(By.tagName("a"));
還有Xpath定位,此定位方式功能強大,會在下一篇博客進行介紹。