Web元素定位總結-自動化測試
放大視窗:
driver.manage().window().maximize();
轉換iframe:
driver.switchTo().frame("leftFrame");
driver.switchTo().defaultContent();
driver.switchTo().frame("mainFrame");
a標籤:
driver.findElement(By.linkText(“商品管理”)).click();
id定位:
driver.findElement(By.id(“productPrice”)).sendKeys(“2000”);
下拉列表:
Select select = new Select(driver.findElement(By.name("goodsType")));
//獲取所有選項的方法
List<WebElement> lst = select.getOptions();
for (WebElement webElement : lst) {
// System.out.println("獲取所有選項的方法依次輸出文字值:"+webElement.getText());
}
//根據索引選中對應的元素
select.selectByIndex(1);
類名:
driver.findElement(By.className(“cmdField”)).click();
name值:
driver.findElement(By.name(“productID”)).sendKeys(“1”);
CSS精準定位:
driver.findElement(By.cssSelector(“a[data-id=‘16516564’]”));
tagname定位:
By.cssSelector(“input”);
id定位:
By.cssSelector("input#id" );
By.cssSelector("#id");
classname定位:
By.cssSelector(".classname");
Xpath定位多屬性:
//input[@maxlength=‘100’ and @auto=‘off’]
//a[text()=‘新聞’]
//a[contains(text(),‘聞’)]
獲取當前頁面URL地址:
driver.getCurrentURL();
獲取當前頁面標題:
driver.getTitle();
獲取當前原始碼:
driver.getPageSource();
navigation物件
Navigation navigation=driver.navigation();
訪問網站:
navigation.to(“https://www.jd”.com");
重新整理網站:
navigation.refresh();
回退:
navigation.back
前進:
navigation.forward
硬性等待:
Thread.sleep(1000);
隱式等待(全域性):
driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS);
## 顯示等待:
```java
webdriverwait webdriverwait=new webdriverwait();
webdriverwait.until(expectCondition);
特殊元素操作:
Alert——Confirm
Alert alert=driver.switchTo().alert();
alert.accept();//接受,確認
alert.dismiss();//取消
alert.getText();
時間控制元件:
滑鼠拖拽:
//找到我們所要拖動的元素A
WebElement A = driver.findElement(By.xpath("//*[@id=\"ext-gen153\"]/li[1]/div"));
WebElement B=driver.findElement(By.xpath("//*[@id=\"ext-gen153\"]/li[2]/div"));
Actions action = new Actions(driver.getDriver());
//滑鼠拖動A向左移動530,之後釋放滑鼠
action.dragAndDropBy(A, -570, 0).perform();
// 滑鼠拖動B向下移動100,向左移動570之後釋放滑鼠
action.dragAndDropBy(k2, -570, 100).perform();
##注意:拖動元素之間最好加強制休眠時間,否則不定時出問題,也不報錯,
action.dragAndDrop(A, B).perform();
driver.sleep(2000);
action.dragAndDrop(B, A).perform();
檔案上傳:
驗證碼:.1去掉 2.萬能驗證碼
不可用的元素:
js="document.getElementById('username').removeAttribute('disabled')"
driver.execute_script(js)
不可見的元素處理:
js="document.getElementById('username').style.display=''"
driver.execute_script(js)