什么是元素?我們知道網頁上有什么內容顯示出來,比如一個按鈕,一個輸入框,一張圖片,都可以理解成元素,這些元素是由html代碼構成的,比如圖片可以用<img>標簽來展示,一個輸入框可以用<input>標簽來表示......

如上圖的百度搜索框,通過HTML源碼,我們可以看到下圖的代碼:

它是一個input,其中有type、class、name、id等屬性,我們可以根據這些屬性值來定位元素。
Selenium 功能豐富的API 提供了多個定位策略如:Name、ID、CSS 選擇器、XPath 等等。selenium查找元素是通過“By”這個類指定定位方式的,首先看一下By類中的方法:
此類中有多個定位方式,比如className(java.lang.String className),這里面傳入的是頁面元素的classname屬性,我們如何知道元素的classname屬性值呢?還有xpath,我們要如何知道xpath值是多少呢?其實通過火狐瀏覽器插件:firepath和firebug可以很方便的進行元素定位。
接下來,我們通過上面百度的輸入框,來舉例Selenium的元素定位。
1.通過id定位:by.id(“kw”),然后用WebElement接收對象代碼如下:
WebElement element = driver.findElement(By.id("kw"));
2.通過classname定位:by.className(“s_ipt”),然后用WebElement接收對象代碼如下:
WebElement element = driver.findElement(By.className("s_ipt"));
3.通過name定位:by.name(“wd”),然后用WebElement接收對象代碼如下:
WebElement element = driver.findElement(By.name("wd"));
另外,還可以通過tag,link,partial link,CSS定位,JQuery,Xpath定位。
xpath定位方法也是用的最多的一個定位方式,這個可以根據xpath的規則去學習學習,同時也可以結合火狐插件工具firepath來獲取元素的xpath值,這里不再贅述。
以上,就是selenium定位元素的方式,下次給大家分享如何控制元素和瀏覽器。
