cssSelector簡介
CSS3選擇器
在CSS中枚抵,選擇器是一種模式,用于選擇需要添加樣式的元素造烁。
"CSS"列指示該屬性是在哪個CSS版本中定義的(CSS1否过、CSS2還是CSS3)
更多詳情午笛,請參考?CSS 選擇器參考手冊
一、定位方法:
1.通過id定位? ??如:<input id="kw">
driver.findElement(By.cssSelector("div#kw"));
2.通過class定位? ??如:<input class="s_ipt">
driver.findElement(By.cssSelector("input.s_ipt"));
3.通過屬性定位? ?如:<input name="wd">
driver.findElement(By.cssSelector("input[name=wd]"));
4.通過子元素定位?
driver.findElement(By.cssSelector("div#u_sp>a"));
與xpath不同苗桂,css中用">"右箭頭代表子元素药磺,而xpath中用的"/"單斜杠表示
5.通過后代元素定位
driver.findElement(By.cssSelector("div#u_sp a"));
與xpath不同,css中用" "空格表示后代元素煤伟,而xpath中用的"http://"雙斜杠表示
6.通過元素的index定位
driver.findElement(By.cssSelector("div#u_sp>a:nth-child(1)"));
與xpath不同癌佩,css中用的寫法":nth-child(1)",xpath中用的寫法"[1]"
7.通過兄弟元素定位
driver.findElement(By.cssSelector("span#s_kw_wrap+input"));
xpath中用的寫法"http://input[preceding-sibling::span[@id='s_kw_wrap']]";
需要注意的是便锨,css的定位到是兄弟元素下面的兄弟元素围辙,而且只是下面的第1個元素(如:span元素id為"s_kw_wrap"有很多input兄弟元素,它只定位到它下面的第1個兄弟元素)放案;而xpath不同的是可以定位到所有兄弟元素姚建;
二、如何查看定位的元素個數(shù)
上面講解了css常用的定位方法卿叽,但是不能確定找出元素是唯一的桥胞,也許可能查找多個元素,F(xiàn)irefox可以借助FirePath插件可以快速定位考婴,并且顯示定位到的元素個數(shù)贩虾,Chrome其實也可以查看元素個數(shù)
方法:
1.打開chrome瀏覽器的開發(fā)者工具(F12),然后選擇Console沥阱;
2.在上邊可以輸入要查找的元素定位缎罢,如:$('div#kw');
3.Console會輸出一段腳本,點擊箭頭展開考杉,里邊會有一個length字段策精,后邊的數(shù)字就代表定位到的元素個數(shù)
如下圖:
或者開發(fā)者工具情況下按control+f ,把定位的路徑輸入到里邊崇棠,也可以查看定位的元素個數(shù)