1. 程式人生 > >selenium測試(Java)--元素操作(五)

selenium測試(Java)--元素操作(五)

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)--元素操作(五)