加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java Selenium 笔记

发布时间:2020-12-14 06:15:37 所属栏目:Java 来源:网络整理
导读:目录 一、基本语句 1、循环控制(break,continue) 3、字符的替换(replace,repalceFirst,replaceAll,regex) 4、字符串的连接("+",append) 5、字符串的截取和分割(substring,split) 6、文件夹的创建与删除(mkdirs,delete) 7、文件的读写(BufferedWrite

目录一、基本语句  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,sans-serif'>样:"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.4、字符串的连接("+",append)"+"可以将多个字符串连接,append是有字符串的末尾追加,不过从运行速度来说,append比“+”的效率高,速度快。例:String str1="abc"+"bcd"; String str2="abc".append("bcd");5、字符串的截取和分割(substring,sans-serif'>样:"abcdefg".substring(4);//结果:"efg",删截掉了前四个字符; "abcdef".substring(0,4);//截取两个位置之间的字符; "abd fghk".split(" ");//在空格处分割字段;?????6、文件夹的创建与删除(mkdirs,sans-serif'>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,sans-serif'>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开始的,故要+1int 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();//关闭浏览器进程 (二)网页元素的定位就火狐浏览器而言,大部分元素都可以用插件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,sans-serif'>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();释放鼠标driver.switchTo().alert().sendKeys("xxx");//转到悬浮框并写入driver.swithcTo().alert().accept();//确认driver.swithcTo().alert().dismiss();//取消driver.switchTo().frame("xxx");driver.switchTo().defaultContent();//从一个框架向另一个框架移动一般都需要先跳转回这个主框defautlContent()Assert.assertTrue(driver.findElement(By.name("xx")).isDisplayed();//确认跳转后页面的某一元素的出现。1、基础框架package testNGpublic 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"}};  return abc; @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中此路径下才能生效。 }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读