selenium測試(Java)--元素操作(五)
阿新 • • 發佈:2017-05-18
ear 獲取驗證碼 wid 輸入 static pri 元素 sta email
元素的操作有
1. 清除文本
2. 模擬按鍵輸入
3. 單擊元素
4. 返回元素尺寸
5. 獲取文本
6. 獲取屬性值
7. 判斷是否可見
8. 提交
下面通過操作新浪郵箱的註冊界面的腳本來展示使用方法
源代碼:
package com.test.elementoperation; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver;public class ElementOperationEmail { public static void main(String[] args) { WebDriver driver = new FirefoxDriver(); driver.get("https://mail.sina.com.cn/register/regmail.php"); driver.manage().window().maximize(); // 獲取email名稱輸入框節點,並輸入名稱 WebElement emailName = driver.findElement(By.cssSelector("[name=email]")); emailName.clear(); emailName.click(); emailName.sendKeys(AllInfo.emailName);// 獲取email密碼輸入框節點,在輸入密碼之前,先驗證一下email名稱時候可用,如果可用就繼續,如果不可用就退出瀏覽器 WebElement emailPassword = driver.findElement(By.cssSelector("[name=psw]")); emailPassword.click();// 點擊一下密碼框,使得email名稱驗證信息出現 waitTime(3000); // 獲取email名稱驗證信息節點,並判斷信息是否為"左箭頭" WebElement checkName = driver .findElement(By.xpath("html/body/div[2]/div/div/div/div/form[1]/div[2]/ul/li[1]/div[3]/i")); String checkContent = checkName.getText();// 通過getText方法來獲取節點文本信息 System.out.println("驗證用戶名信息是否存在: " + checkName.isDisplayed() + " 比對結果的信息是 :" + checkContent); // 獲取到信息後開始判斷,並進行不同的分支 if ("左箭頭".equals(checkContent)) { // 確認名稱無誤後輸入密碼 emailPassword.sendKeys(AllInfo.emailPassword); waitTime(3000); // 獲取驗證碼輸入框節點,在輸入驗證碼之前,先驗證一下密碼是否有效和密碼強度 WebElement emailImgvcode = driver.findElement(By.cssSelector("[name=imgvcode]")); emailImgvcode.click(); waitTime(3000); // 獲取密碼校驗信息節點,並判斷時候存在以及信息是否為"密碼強度:高" WebElement checkPassword = driver.findElement(By.cssSelector("[class=passWord3]")); if (checkPassword.isDisplayed() && "密碼強度:高".equals(checkPassword.getText())) { // 密碼校驗通過後,獲取驗證驗證圖片節點,並通過一下方法來獲取該節點的信息 WebElement img = driver.findElement(By.cssSelector("[id=capcha]")); System.out.println("驗證圖片的 hight是: " + img.getSize().getHeight()); System.out.println("驗證圖片的 Width是: " + img.getSize().getWidth()); System.out.println("驗證圖片的 src屬性值是: " + img.getAttribute("src")); waitTime(3000); // 輸入驗證碼,真實環境中selenium很難獲取到正確的驗證碼,如果在測試環境可以通過訪問Cookie的方式實現。 // 這裏隨意輸入一個驗證碼 emailImgvcode.sendKeys("1234567890"); waitTime(3000); // 獲取提交按鈕信息,並通過一些方法來獲取該節點的信息 WebElement submit = driver.findElement(By.cssSelector("[class=subIco]")); System.out.println("提交按鈕的文本信息是: " + submit.getText()); System.out.println("提交按鈕的class屬性值是: " + submit.getAttribute("class")); System.out.println("提交按鈕的style屬性值是: " + submit.getAttribute("style")); System.out.println("提交按鈕的css屬性值是: " + submit.getCssValue("float")); System.out.println("提交按鈕的href屬性值是: " + submit.getAttribute("href")); submit.submit(); waitTime(5000); driver.quit(); } else { System.out.println("密碼校驗信息沒有展示或者密碼強度低"); driver.quit(); } } else { System.out.println("用戶名不可用"); driver.quit(); } } static public void waitTime(int time) { try { Thread.sleep(time); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
執行結果:
驗證用戶名信息是否存在: true 比對結果的信息是 :左箭頭 驗證圖片的 hight是: 34 驗證圖片的 Width是: 118 驗證圖片的 src屬性值是: https://mail.sina.com.cn/cgi-bin/createcode.php?t=1468141676 提交按鈕的文本信息是: 立即註冊 提交按鈕的class屬性值是: subIco 提交按鈕的style屬性值是: float: left; 提交按鈕的css屬性值是: left 提交按鈕的href屬性值是: javascript:void(0)
原文:http://www.cnblogs.com/moonpool/p/5658160.html
selenium測試(Java)--元素操作(五)