selenium實用技巧

zm_21發表於2014-06-03

一直以來都用xpath去識別元素,xpath確識方便又實用,但有時會發現它要寫很長很長,對於有些元素,用css去定位,可能更加方便。

假設有如下的HTML頁面:

line 1 <html>

line 2   <body>

line 3     <form id= "loginForm" >

line 4       <input name= "username" type= "text" />

line 5       <input name= "password" type= "password" />

line 6       <input name= "continue" type= "submit" value= "Login" />

line 7       <a href= "continue.html" >Continue</a>

line 8     </form>

line 9   </body>

line 10 <html>

通過XPath定位

例如:

driver.click("xpath=/html/body/form[1]")。如果使用相對路徑,則可以省略"xpath=":

driver.click("//form[1]");

driver.click("//form[@id='loginForm']");

driver.click("//form[@id='loginForm']/input[1]");

driver.click("//input[@name=‘username’]");

通過css定位

例如:

driver.click("css=form#loginForm");

driver.click('css=input[name="username"]'); 

driver.click("css=#loginForm input:nth-child(2)");

怎麼檢視頁面元素的各個屬性呢?推薦使用Firefox的Firebug外掛,可以自動生成指定元素的xpath和css。同時配合Firefinder,可以驗證你的xpath和css是否正確。

 

2。Install Firefox的Firebug外掛

open Firefox->工具-〉附加元件-〉搜素firebug

Install filebug and filefinder

 

3。在做一個專案的selenium測試,但是遇到一個問題,通過tape語句輸入日期之後,到selenium執行到查詢按鈕的時候,

輸入的日期卻是不正確了。比如輸入04102013,結果卻04/02/13__輸入04/10/2013,結果卻是04/10/20

後來深入的研究了日期輸入框的行為,原來是系統在js上做了一些特殊的處理。標進入時,把格式掩碼(如/)去掉,

顯示數字,游標離開之後,進行格式掩碼處理。 並且限制該輸入框的最大輸入長度為8。因此,才造成上面的幾種錯誤。


所以,我們就採用下面的作法,模擬游標的進入,賦值,游標離開。


        selenium.focus("id=condition.orderNo");   //id=condition.fromDate的上一個專案

        selenium.keyPressNative("09");  //模擬鍵入tab鍵
       
        selenium.focus("id=condition.fromDate"); // 設游標
        selenium.type("id=condition.fromDate", "04102013"); //賦值
        
        selenium.focus("id=condition.fromDate");  //設游標

        selenium.keyPressNative("09"); //模擬鍵入tab鍵

 

 origin: http://blog.csdn.net/xinwang/article/details/16842991

相關文章