基於JAVA語言的selenium測試基礎總結

來源:互聯網
上載者:User

標籤:img   type   eclips   regex   form   正則   depends   sdi   play   

目錄
一、基本語句
  1、迴圈控制(break,continue)
  3、字元的替換(replace,repalceFirst,replaceAll,regex)
  4、字串的串連("+",append)
  5、字串的截取和分割(substring,split)
  6、檔案夾的建立與刪除(mkdirs,delete)
  7、檔案的讀寫(BufferedWrite,BufferedReader)
  8、系統時間的擷取( ((Calendar.getInstance()).get(Calendar.YEAR) )
  9、時間格式的轉換(SimpleDateFormat)
二、瀏覽器自動化操作(基於maven包)
(一)對瀏覽器的基本操作
(二)網頁元素的定位
  1、name定位
  2、class定位
  3、css定位
  4、ID定位
  5、tagName定位
  6、link,partialLink定位(a)
  7、xpath定位
(三)對滑鼠的懸停操作(Actions)
(四)對懸浮框alert的操作(accept,dismiss)
(五)在網頁架構上的切換(frame,defaultContent)
(六)網頁跳轉確認(assert,isDisplayed)
三、自動化功能的實現(基於TestNG)
  1、基礎架構
  2、資料與編碼分離的架構(excel,FeedTest)

 

一、基本語句

1、迴圈控制(break,continue)

break用於結束整個迴圈;

continue用於結束本次迴圈,以進行下一次迴圈。

2、字元及字串的比較(compareTo,equals,compareToIgnoreCase,equalsIgnoreCase)

compareTo和compareToIgnoreCase結果返回的是int(兩個字串的第一個不同字元的ASCII差值);

equals和equalsIgonrCase結果返回的是bool值(true、false);

compareTo和equals區分大小寫,-IgnoreCase忽略大小寫。

樣本:"abc".compareTo("bac"); 

      "Abc".equalsIngoreCase("abc");

3、字元的替換(replace,repalceFirst,replaceAll,regex)

樣:"Ab cdef ab".replace("ab","xy")

replace:將前邊字串中的ab替換為xy,區分大小寫;

repalceFirst:將第一個ab替換為xy;

replaceAll:將所有的ab都替換為xy;

嚴格Regex:String regex="^[0-9]{4}$";表示只替換是且僅是連續4位的數字;

非嚴格的Regex:String regex="[0-9]{4}",只要存在的位連續的4位元字就進行替換;

例:"1324adb568872".repalce(regex,"xx");  //此運算式如果regex是嚴格的就只會替換1324,如果是非嚴格的就會替換1324和5688.

4、字串的串連("+",append)

"+"可以將多個字串串連,append是有字串的末尾追加,不過從運行速度來說,append比“+”的效率高,速度快。

例:String str1="abc"+"bcd";

    String str2="abc".append("bcd");

5、字串的截取和分割(substring,split)

樣:"abcdefg".substring(4);//結果:"efg",刪截掉了前四個字元;

    "abcdef".substring(0,4);//截取兩個位置之間的字元;

    "abd fghk".split(" ");//在空格處分割欄位;?????

6、檔案夾的建立與刪除(mkdirs,delete)

String str="D:/practice1/practice2";

File file=new File(str);

file.mkdirs();//檔案夾的建立;

file.delete();//刪除;

String str2="D:/practice1/practice2/11.txt";

File file2=new File(str2);

file2.createNewFile();//建立檔案。

file2.delete();//刪除

7、檔案的讀寫(BufferedWrite,BufferedReader)

BufferedWriter bw=new BufferedWriter(new FileWriter("filename"));//建立寫入流。讀取流的建立也一樣,只是換用BufferedReader()。

bw.write("What a sunny day!");

bw.newLine();//換行

bw.close();//一般用完檔案都要關閉。

判斷檔案是否存在:String str;  (str=br.readLine())!=null;

8、系統時間的擷取( ((Calendar.getInstance()).get(Calendar.YEAR) )

Calendar cal=Calender.getInstance();

int year=cal.get(Calendar.YEAR);//當前年份

int month=cal.get(Calendar.MONTH)+1;//系統對月的統計是從0開始的,故要+1

int date=cal.get(Calendar.DATE)//日

int day1=cal.get(Calendar.DAY_OF_WEEK)//一周中的第幾天

int day2=cal.get(Calendar.DAY_OF_MONTH)//一月中的第幾天

int day3=cal.get(Calendar.DAY_OF_YEAR)//一年中的第幾天

9、時間格式的轉換(SimpleDateFormat)

long time=System.currentTimeMillis();//當前系統日期

String str1="MM/dd/yyyy";

String str2="yyyy/MM/dd";

String str3="yyyy/MM/dd HH:mm:ss";

String str4="yyyy/MM/dd HH:mm:SS";

String str5="yyyy/MM/dd HH:mm:s";//時間格式,H-24小時制,s-秒,S-毫秒

SimpleDateFormat form1=new SimpleDateFormat(str)

System.out.println(form1.format(time));//格式轉換

 

二、瀏覽器自動化操作(基於maven包)

(一)對瀏覽器的基本操作

System.setProperty("webdriver","C:\\PromgramFiles\瀏覽器物理位置\firefox.exe");//設定預設瀏覽器。

WebDriver driver=new FirefoxDriver();//開啟瀏覽器

driver.manage().window().maximize();//最大化

driver.manage().timeOuts().ImplicitlyWait(5,TimeUnit.SECONDS);智能等待5秒

Thread.sleep(5000);//等待5秒

driver.get("http://網址");//開啟網頁

driver.close();//關閉當前瀏覽器

driver.quit();//關閉瀏覽器進程

 

(二)網頁元素的定位

就Firefox瀏覽器而言,大部分元素都可以用外掛程式firebug找到,只有css類型需要用seleniunIDE進行查閱。

1、name定位

driver.findElement(By.name("xxx"));

2、class定位

driver.findElement(By.className("xxx"));

3、css定位

driver.findElement(By.cssSelector("input[type=‘button‘]));

4、ID定位

driver.findElement(By.id("xxx"));

5、tagName定位

driver.findElement(By.tagName("xxx"));

6、link,partialLink定位(a)

driver.findElenment(By.linkText("xxx"));//link需要連結後邊的全部內容來進行定位,而partialLink只需要寫入一部分就能進行尋找定位。

7、xpath定位

driver.findElememt(By.xpath("/html/body/每一層路徑/目標"));

driver.findElement(By.xpath("//input[@value=‘值‘]");

driver.findElement(By.xpath("//img[@alt=‘圖片名‘]");//圖片名為在網頁上,按住alt並將滑鼠移動到圖上時所顯示的名稱。

driver.findElement(By.xpath("//img[contains(@alt,‘xxx‘)]");

driver.findElement(By.xpath("//a[text()=‘xxx‘]");//對於連結的通過xpath定位不需要用@,而用樣本所給格式。

 

(三)對滑鼠的懸停操作(Actions)

Actions action=new Actions(driver);//建立對於瀏覽器的滑鼠動作

action.moveToElement("位置").perform();//移動到某一位置,perform()用於確認。

action.clickAndHold("位置”).perform();//按住並移動

action.release("位置").perform();釋放滑鼠

 

(四)對懸浮框alert的操作(accept,dismiss)

driver.switchTo().alert().sendKeys("xxx");//轉到懸浮框並寫入

driver.swithcTo().alert().accept();//確認

driver.swithcTo().alert().dismiss();//取消

 

(五)在網頁架構上的切換(frame,defaultContent)

driver.switchTo().frame("xxx");

driver.switchTo().defaultContent();//從一個架構向另一個架構移動一般都需要先跳回這個主框defautlContent()

 

(六)網頁跳轉確認(assert,isDisplayed)

Assert.assertTrue(driver.findElement(By.name("xx")).isDisplayed();//確認跳轉後頁面的某一元素的出現。

 

三、自動化功能的實現(基於TestNG)

1、基礎架構

package testNG

public class test{

     @Test(dataProvider="dp")//功能的主要實現結構

     public void mainn(String a,int b,Stringc){

    

     }

     @DataProvider(name="dp")//資料提供者

     public Object[][] dp(){

     Object[][] abc={ {"ab","5","bc"},{"bc","3","xx"}};

     }

    

     @Test(dependsOnMethods="mainn")//接著mainn之後運行

     public void add{

    

     }

}

 

2、資料與編碼分離的架構(excel,FeedTest)

package testNG;

public class test  extends FeedTest //extends FeedTest為追加

{

     @Test(dataProvider="feeder")//feeder為固定用語

     @Souce("data/1.xls")//data為eclips內一個檔案夾路徑,1.xls為excel源檔案,需要將它複製到eclips中此路徑下才會生效。

     public void mainn(String a,String b,String c,int x){

 

     }

 

基於JAVA語言的selenium測試基礎總結

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.