目錄
1、基本語句
一、循環控制(break,continue)
三、字符的替換(replace,repalceFirst,replaceAll,regex)
四、字符串的鏈接("+",append)
五、字符串的截取和分割(substring,split)
六、文件夾的建立與刪除(mkdirs,delete)
七、文件的讀寫(BufferedWrite,BufferedReader)
八、系統時間的獲取( ((Calendar.getInstance()).get(Calendar.YEAR) )
九、時間格式的轉換(SimpleDateFormat)
2、瀏覽器自動化操做(基於maven框架)
(一)對瀏覽器的基本操做
(二)網頁元素的定位
一、name定位
二、class定位
三、css定位
四、ID定位
五、tagName定位
六、link,partialLink定位(a)
七、xpath定位
(三)對鼠標的懸停操做(Actions)
(四)對懸浮框alert的操做(accept,dismiss)
(五)在網頁框架上的切換(frame,defaultContent)
(六)網頁跳轉確認(assert,isDisplayed)
3、自動化功能的實現(基於TestNG)
一、基礎框架
二、數據與編碼分離的框架(excel,FeedTest)css
1、基本語句html
一、循環控制(break,continue)web
break用於結束整個循環;正則表達式
continue用於結束本次循環,以進行下一次循環。瀏覽器
二、字符及字符串的比較(compareTo,equals,compareToIgnoreCase,equalsIgnoreCase)app
compareTo和compareToIgnoreCase結果返回的是int(兩個字符串的第一個不一樣字符的ASCII差值);框架
equals和equalsIgonrCase結果返回的是bool值(true、false);maven
compareTo和equals區分大小寫,-IgnoreCase忽略大小寫。ide
示例:"abc".compareTo("bac"); ui
"Abc".equalsIngoreCase("abc");
三、字符的替換(replace,repalceFirst,replaceAll,regex)
樣:"Ab cdef ab".replace("ab","xy")
replace:將前邊字符串中的ab替換爲xy,區分大小寫;
repalceFirst:將第一個ab替換爲xy;
replaceAll:將全部的ab都替換爲xy;
嚴格正則表達式:String regex="^[0-9]{4}$";表示只替換是且僅是連續4位的數字;
非嚴格的正則表達式:String regex="[0-9]{4}",只要存在的位連續的4位數字就進行替換;
例:"1324adb568872".repalce(regex,"xx"); //此表達式若是regex是嚴格的就只會替換1324,若是是非嚴格的就會替換1324和5688.
四、字符串的鏈接("+",append)
"+"能夠將多個字符串鏈接,append是有字符串的末尾追加,不過從運行速度來講,append比「+」的效率高,速度快。
例:String str1="abc"+"bcd";
String str2="abc".append("bcd");
五、字符串的截取和分割(substring,split)
樣:"abcdefg".substring(4);//結果:"efg",刪截掉了前四個字符;
"abcdef".substring(0,4);//截取兩個位置之間的字符;
"abd fghk".split(" ");//在空格處分割字段;?????
六、文件夾的建立與刪除(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();//刪除
七、文件的讀寫(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;
八、系統時間的獲取( ((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)//一年中的第幾天
九、時間格式的轉換(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));//格式轉換
2、瀏覽器自動化操做(基於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();//關閉瀏覽器進程
(二)網頁元素的定位
就火狐瀏覽器而言,大部分元素均可以用插件firebug找到,只有css類型須要用seleniunIDE進行查閱。
一、name定位
driver.findElement(By.name("xxx"));
二、class定位
driver.findElement(By.className("xxx"));
三、css定位
driver.findElement(By.cssSelector("input[type='button']));
四、ID定位
driver.findElement(By.id("xxx"));
五、tagName定位
driver.findElement(By.tagName("xxx"));
六、link,partialLink定位(a)
driver.findElenment(By.linkText("xxx"));//link須要連接後邊的所有內容來進行定位,而partialLink只須要寫入一部分就能進行查找定位。
七、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();//確認跳轉後頁面的某一元素的出現。
3、自動化功能的實現(基於TestNG)
一、基礎框架
1 package testNG 2 public class test{ 3 @Test(dataProvider="dp")//功能的主要實現結構 4 public void mainn(String a,int b,Stringc){ 5 6 } 7 @DataProvider(name="dp")//數據提供者 8 public Object[][] dp(){ 9 Object[][] abc={ {"ab","5","bc"},{"bc","3","xx"}}; 10 } 11 12 @Test(dependsOnMethods="mainn")//接着mainn以後運行 13 public void add{ 14 15 } 16 }
二、數據與編碼分離的框架(excel,FeedTest)
1 package testNG; 2 public class test extends FeedTest //extends FeedTest爲追加 3 { 4 @Test(dataProvider="feeder")//feeder爲固定用語 5 @Souce("data/1.xls")//data爲eclips內一個文件夾路徑,1.xls爲excel源文件,須要將它複製到eclips中此路徑下才能生效。 6 public void mainn(String a,String b,String c,int x){ 7 8 } 9 }