Selenium2之Web自动化编写API(Java)
一、元素的定位
ID定位元素:
findElement(By.id(element));?
通過元素的名稱定位元素:
findElement(By.name(element));??
通過元素的html中的位置定位元素:
findElement(By.xpath(element));?
通過元素的標簽名稱定位元素:
findElement(By.tagName(element));?
通過元素的鏈接名稱定位元素:
findElement(By.linkText(element));?
通過元素的類名定位元素:
findElement(By.className(element));?
通過元素的css定位元素:
findElement(By.cssSelector(element));?
通過元素的部分鏈接名稱定位元素:
findElement(By.partialLinkText(element));
二、元素操作
模擬鼠標點擊:driver.click();
打開網頁:driver.get("https://www.baidu.com");
關閉網頁:driver.close();
在輸入框中輸入內容:text.sendKeys(“”);
清空輸入框中的內容:text.clear();
獲取輸入框中的內容:text.getText();
選擇下拉框中的元素:
Select select = new Select(wd.findElement(By.id("select")));
切換到某個frame:
driver.switchTo().frame("");
從一個frame切換到另一個frame:
driver.switchTo().frame("");
切換到某個window:
driver.switchTo().window("windowName");
返回父iframe:(一般在跳轉frame之前都寫上這個語句)
driver.switchTo().defaultContent();
刷新頁面:driver.navigate().refresh();
頁面前進后退:
driver.navigate().forward();
driver.navigate().back();
三、鼠標操作
常用的鼠標右擊、雙擊、懸停、拖動等功能都封裝在Actions類中。
代碼MouseOperation.java,鏈接:http://pan.baidu.com/s/1i5zmwoX 密碼:n88i
| perform() | 執行所有Actions中存儲的行為 |
| contextclick() | 右擊 |
| click() | 左擊 |
| doubleclick() | 雙擊 |
| dragAndDrop() | 拖動 |
| moveToElement() | 鼠標懸停 |
四、常用input操作
輸入框(text field or textarea)
WebElement element = driver.findElement(By.id("passwd-id"));
- element.sendKeys(“test”);//在輸入框中輸入內容:
- element.clear();?? //將輸入框清空
- element.getText();?? //獲取輸入框的文本內容:
下拉選擇框(Select)
Select select = new Select(driver.findElement(By.id("select")));??
- select.selectByVisibleText(“A”);
- select.selectByValue(“1”);?
- select.deselectAll();
- select.deselectByValue(“1”);
- select.deselectByVisibleText(“A”);
- select.getAllSelectedOptions();
- select.getFirstSelectedOption();
單選項(Radio Button)
WebElement radio=driver.findElement(By.id("BookMode"));
- radio.click();?? //選擇某個單選項
- radio.clear();? //清空某個單選項
- radio.isSelected(); //判斷某個單選項是否已經被選擇
多選項(checkbox)
WebElement checkbox = driver.findElement(By.id("myCheckbox."));
- checkbox.click();
- checkbox.clear();
- checkbox.isSelected();
- checkbox.isEnabled();
按鈕(button)
WebElement btn= driver.findElement(By.id("save"));
- btn.click(); //點擊按鈕
- btn.isEnabled (); //判斷按鈕是否enable
彈出對話框(Popup dialogs)
Alert alert = driver.switchTo().alert();
- alert.accept(); //確定
- alert.dismiss(); //取消
- alert.getText(); //獲取文本
表單(Form)
Form中的元素的操作和其它的元素操作一樣,對元素操作完成后對表單的提交可以:
WebElement approve = driver.findElement(By.id("approve"));
approve.click();
或
approve.submit();//只適合于表單的提交
五、其他操作
上傳文件的元素操作:
WebElement adFileUpload =driver.findElement(By.id("WAP-upload"));
String filePath = "C:\test\\uploadfile\\media_ads\\test.jpg";
adFileUpload.sendKeys(filePath);
Windows 和 Frames之間的切換
- driver.switchTo().defaultContent(); //返回到最頂層的frame/iframe
- driver.switchTo().frame("leftFrame"); //切換到某個frame:
- driver.switchTo().window("windowName"); //切換到某個window
調用Java Script
Web driver對Java Script的調用是通過JavascriptExecutor來實現的,例如:
JavascriptExecutor js = (JavascriptExecutor) driver;
??????? js.executeScript("JS腳本");
超時設置
WebDriver driver = new FirefoxDriver();
- driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);? //識別元素時的超時時間
- driver.manage().timeouts().pageLoadTimeout(10, TimeUnit.SECONDS); //頁面加載時的超時時間
- driver.manage().timeouts().setScriptTimeout(10, TimeUnit.SECONDS); //異步腳本的超時時間
轉載于:https://www.cnblogs.com/MR-FANWB/p/7908552.html
總結
以上是生活随笔為你收集整理的Selenium2之Web自动化编写API(Java)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (转)Maven学习总结(七)——ecl
- 下一篇: Java动态解析域名