java元素定位div_Java+Selenium元素定位的练习(三)
一、簡單元素定位
學習了元素的定位方法和元素的操作之后,下面就來練習一下,下面是html的源碼
testfunction toAlert() {
alert("hello continue...");
}
第一個div第二個div第三個divusername: |
password: |
| 地區(qū): 天津 北京 上海 河北 |
性別: Boy Girl |
四季:
春
夏
秋
冬
百度首頁走起~
和大的DIV并列沒有id和name,是不是傻眼了第一本書
第二本書
第三本書
第四本書
(一)、練習1:統(tǒng)計出當前頁面有多少個div
List list = driver.findElements(By.tagName("div"));
int number = list.size();
System.out.println("一共有"+number+"個div");
(二)、練習2:輸出頁面第一個div中的文字
String divText = driver.findElement(By.cssSelector("form > div")).getText();
System.out.println(divText);
(三)、練習3:用xpath找出所有的復(fù)選框,并點擊
List elements = driver.findElements(By.id("u"));
for(int i=0;i
if(elements.get(i).isSelected()==false){
elements.get(i).click();
}
}
(四)、找出input標簽中所有屬性中含有check,并輸出tagname
List elements = driver.findElements(By.xpath("//*[contains(@*,'check')]"));
for(int i=0;i
System.out.println(elements.get(i).getTagName());
}
(五)、找出頁面元素,id屬性包含o,并輸出id名稱
List elements = driver.findElements(By.xpath("//*[contains(@id,'o')]"));
for (int i = 0; i < elements.size(); i++) {
String id = elements.get(i).getAttribute("id");
System.out.println("id="+id);
}
(六)、找出頁面元素中,id屬性為acc開頭的,并輸入id的名稱
List elements = driver.findElements(By.xpath("//*[starts-with(@id,'acc')]"));
for (int i = 0; i < elements.size(); i++) {
String id = elements.get(i).getAttribute("id");
System.out.println("id="+id);
}
(七)、定位到頁面文本含有“百度”的元素,并輸出文本值
List elements = driver.findElements(By.xpath("//*[contains(text(),'百度')]"));
for (int i = 0; i < elements.size(); i++) {
String text = elements.get(i).getText();
System.out.println("text="+text);
}
(八)、找出頁面中最后一個div,并輸出其文本值
String text = elements.get(elements.size()-1).getText();
System.out.println(text);
Logger.log("關(guān)閉" + browser + "瀏覽器");
(九)、下拉菜單、單選框,多選框操作
// 下拉菜單的練習
WebElement element = driver.findElement(By.id("areaID"));
Select select = new Select(element);
// select.selectByValue("3");
// select.selectByIndex(2);
select.selectByVisibleText("上海");
//單選框練習
List elements = driver.findElements(By.name("u2"));
if (elements.get(1).isSelected() == false) {
System.out.println(elements.get(1).isSelected());
elements.get(1).click();
}
//復(fù)選框的練習
List elementlist = driver.findElements(By.id("u"));
for (int i = 0; i < elementlist.size(); i++) {
if (elementlist.get(i).isSelected() == false) {
elementlist.get(i).click();
}
}
二、復(fù)雜元素定位
有時候我們會遇到一些html中只有一個元素屬性,其他都沒有屬性,那么這時候我們就需要從這個屬性中,定位到另一個元素
(一)、練習一
已知一個訂單商品名字,查找這個訂單的狀態(tài)
步驟
1、定位商品名稱的元素
操作:F12瀏覽器--點擊“選取頁面中的元素”按鈕--把鼠標移動到商品名稱上點一下--在查看器右擊被選中的html代碼,選擇復(fù)制--xpath,得到如下結(jié)果
/html/body/div[2]/div/div[1]/div[1]/div[3]/div/div[4]/div/table/tbody[2]/tr/td[1]/div/div[2]/p[1]/a[1]/span[2]
2、定位這個商品訂單狀態(tài)的元素
同樣的方法,使用xpath定位商品訂單狀態(tài)
/html/body/div[2]/div/div[1]/div[1]/div[3]/div/div[4]/div/table/tbody[2]/tr/td[6]/div/p/span
3、取兩個定位元素的相交節(jié)點
商品名稱:/tr/td[1]/div/div[2]/p[1]/a[1]/span[2]
訂單狀態(tài):/tr/td[6]/div/p/span
4、定位到商品名稱
因為"人本"是搜索訂單出來的,所以帶有文本為紅色的樣式,只能定位到人本之前的文本,所以如下
//tr/td[1]/div/div[2]/p[1]/a[1]/span[2][contains(text(),'【開學價】')]
5、定位訂單的狀態(tài)
用[]把父節(jié)點后面的元素括起來,去掉訂單狀態(tài)的父節(jié)點,后面+訂單狀態(tài)的元素即可
//tr[td[1]/div/div[2]/p[1]/a[1]/span[2][contains(text(),'【開學價】')]]/td[6]/div/p/span
(二)、練習二
步驟
1、找到.success
/html/body/div[3]/div/div[2]/div/div[3]/div/table[2]/tbody/tr[3]/td[1]
2、使用xpath定位“嘗試一下”按鈕
/html/body/div[3]/div/div[2]/div/div[3]/div/table[2]/tbody/tr[3]/td[3]/a
3、定位“嘗試一下”按鈕
取兩個定位元素的相交節(jié)點
tr[3]/td[1]
tr[3]/td[3]/a
定位到.success文本
//tr[3]/td[1][text()=".success"]
用[]把父節(jié)點后面的元素括起來,去掉【嘗試一下】按鈕的父節(jié)點,后面+訂單狀態(tài)的元素即可
//tr[3][td[1][text()=".success"]]/td[3]/a
新人創(chuàng)作打卡挑戰(zhàn)賽發(fā)博客就能抽獎!定制產(chǎn)品紅包拿不停!總結(jié)
以上是生活随笔為你收集整理的java元素定位div_Java+Selenium元素定位的练习(三)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《博客园精华集》Sharepoint+M
- 下一篇: WPF自定义控件