元素(WebElement)-----Selenium快速入門(三)


上一篇《元素定位-----Selenium快速入門(二)》說了,如何定位元素,本篇說說找到的元素(WebElement)該怎么用。

WebElement常用方法:

 返回值  方法名  說明
 void  clear() 如果找到的元素是input 或  textarea,則清除它的值。其他元素不受影響。 
 void   click()

點擊一個元素,元素必須可見,並且寬高都必須大於0。如果這個點擊操作導致頁面刷新的話,

必須要拋棄這個元素的所有引用,並且對這個元素的進一步操作,

都會引發StaleElementReferenceException

 String  getAttribute(String name)  通過屬性名,獲得屬性值。例如,我想獲得value的值,可以調用getAttribute("value")
 String  getCssValue(String propertyName) 通過屬性名,獲得Css屬性值,例如getCSSValue("height")
 String  getTagName() 獲得該元素的標簽名,例如input,p等
 String  getText()

獲取頁面上可見的文字(沒有被css隱藏),包括子元素,獲得的文本去除任何前導或后置的空格。

例如,html源碼是<p id="test">    aaaaa <br/>bbbbb<br/><a href="#">   cccccc    </a></p>

如果我們得到的WebElement ele=driver.findElement(By.id("test")),那么ele.getText()實際輸出

aaaaa

bbbbb

cccccc

 boolean  isDisplayed() 判斷該元素是否可見。
 boolean  isEnabled() 判斷元素是否可用。
 boolean  isSelected() 判斷元素是否被選中,只用於單選或者多選按鈕(radio button,check box)
 void  sendKeys(CharSequence... keys) 模擬輸入字符
 void   submit()

如果當前元素是一個form或者是在form內的一個元素,則會提交表單。

否則,引發NoSuchElementException

下面用一個自動注冊的例子,來說明上面一些方法的使用。

我們注冊的地址是:http://www.eshimin.com/pages/account/register/regIndex.jsp

之所以選擇這個,是因為它不需要驗證碼,而且雖然分成三步注冊,實際填好第一個注冊界面,點擊注冊,即可注冊成功,后面不需要綁定手機什么的。

首先,我們用chrome的F12調試工具,獲得頁面中元素的各ID。

需要注意的是,當“我已閱讀並同意”未選中時,“注冊”是不可用的,因此,我們先選中同意,然后輸入其他文本框,為什么要先選中?大家自己思考一下。

下面是詳細的代碼,都有詳盡的解釋。

 System.setProperty("webdriver.chrome.driver", "D:/WorkSpace/SeleniumTest/tools/chromedriver.exe");
         WebDriver driver=new ChromeDriver();
         driver.get("http://www.eshimin.com/pages/account/register/regIndex.jsp");
         
         //定位各種需要填寫的元素
         WebElement userName=driver.findElement(By.id("userNameInput"));
         WebElement pwd=driver.findElement(By.id("passwordInput"));
         WebElement rePwd=driver.findElement(By.id("rePasswordInput"));
         WebElement chkAgree=driver.findElement(By.id("secret"));
         WebElement button=driver.findElement(By.id("nextStep"));
         
         //首先判斷check box是否被選中,如果沒有被選中,則選中
         if(!chkAgree.isSelected())
             chkAgree.click();
         //在用戶名文本框輸入用戶名
         userName.sendKeys("csdfsss0002");
         //輸入密碼
         pwd.sendKeys("abc123");
         //重復密碼
         rePwd.sendKeys("abc123");
          //提交表單
         button.submit();

如果輸入的賬號密碼成功,提交表單,會跳轉到下一步,實際上是已經注冊成功。

到這里,大家應該意識到什么了,此處只是用來演示selenium 中WebElement的用法,千萬別做壞事。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM