您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 国内外标准规范 > webdriver实用指南乙醇Java版
Webdriver实用指南java版本by乙醇启动浏览器场景在使用webdriver进行测试时启动浏览器无疑是必须的前置工作。代码importorg.openqa.selenium.WebDriver;importorg.openqa.selenium.chrome.ChromeDriver;publicclassStartBrowser{publicstaticvoidmain(String[]args){WebDriverdr=newChromeDriver();}}关闭浏览器场景在脚本运行完毕或者测试代码结束的时候关闭浏览器是非常自然的事情,就像在吃完饭后就把餐桌收拾干净一样。关闭浏览器有两种方式:close方法quit方法close方法关闭当前的浏览器窗口,quit方法不仅关闭窗口,还会彻底的退出webdriver,释放与driverserver之间的连接。所以简单来说quit是更加彻底的close,quit会更好的释放资源,适合强迫症和完美主义者。代码importorg.openqa.selenium.WebDriver;importorg.openqa.selenium.chrome.ChromeDriver;publicclassCloseBrowser{publicstaticvoidmain(String[]args){WebDriverdr=newChromeDriver();System.out.println(browserwillbeclosed);dr.quit();System.out.println(browserisclosed);}}浏览器最大化场景当我们在测试中使用一些基于图像和坐标的辅助测试工具时,我们就会需要使浏览器在每次测试时保存最大化,以便在同一分辨率下进行图像比对和坐标点选。举例来说,如果在webdriver测试中使用了sikuli来对flash插件进行操作的话,把浏览器最大化无疑是一个比较简单的保证分辨率统一的解决方案。代码importorg.openqa.selenium.WebDriver;importorg.openqa.selenium.chrome.ChromeDriver;publicclassMaximize{publicstaticvoidmain(String[]args)throwsInterruptedException{WebDriverdr=newChromeDriver();Thread.sleep(2000);System.out.println(maximizebrowser);dr.manage().window().maximize();Thread.sleep(2000);System.out.println(browserwillbeclose);dr.quit();}}设置浏览器大小场景设置浏览器窗口的大小有下面两个比较常见的用途:在统一的浏览器大小下运行用例,可以比较容易的跟一些基于图像比对的工具进行结合,提升测试的灵活性及普遍适用性。比如可以跟sikuli结合,使用sikuli操作flash;在不同的浏览器大小下访问测试站点,对测试页面截图并保存,然后观察或使用图像比对工具对被测页面的前端样式进行评测。比如可以将浏览器设置成移动端大小(320x480),然后访问移动站点,对其样式进行评估;代码将浏览器调整成移动端大小,然后访问移动站点,对移动站点的样式进行评估。importorg.openqa.selenium.WebDriver;importorg.openqa.selenium.chrome.ChromeDriver;publicclassCloseBrowser{publicstaticvoidmain(String[]args){WebDriverdr=newChromeDriver();System.out.println(browserwillbeclosed);dr.quit();System.out.println(browserisclosed);}}讨论webdriver提供了很多调整浏览器窗口的接口,比如move_to(移动窗口),position(设置或获取浏览器的位置)。在一般情况下这些功能并不常用。访问链接情景webUI测试里最简单也是最基本的事情就是访问1个链接了。webdriver的api里有2种访问url的方式,分别是get和navigate.to方法。一般情况下建议使用get,因为其字母比较少,不太容易出错。代码importorg.openqa.selenium.WebDriver;importorg.openqa.selenium.chrome.ChromeDriver;publicclassGet{publicstaticvoidmain(String[]args)throwsInterruptedException{WebDriverdr=newChromeDriver();Thread.sleep(2000);Stringurl=(nowaccesss%s\n,url);dr.get(url);Thread.sleep(2000);System.out.println(browserwillbeclose);dr.quit();}}讨论navigate方法实际上会产生1个Navigator对象,其封装了与导航相关的一些方法,比如前进后退等。打印当前页面的title及url情景测试中,访问1个页面然后判断其title是否符合预期是很常见的1个用例,所谓用例不够,title来凑就是这个道理。更具体一点,假设1个页面的title应该是'helloworld',那么可以写这样的一个用例:访问该页面,获取该页面的title,判断获取的值是否等于'helloworld'。获取当前页面的url也是非常重要的一个操作。在某些情况下,你访问一个url,这时系统会自动对这个url进行跳转,这就是所谓的'重定向'。一般测试重定向的方法是访问这个url,然后等待页面重定向完毕之后,获取当前页面的url,判断该url是否符合预期。另外的一个常见的测试场景是提交了一个表单,如果表单内容通过了验证,那么则会跳转到一个新页面,如果未通过验证,则会停留在当前页面,此时获取当前页面的url则可以帮助我们判断表单提交的跳转是否符合预期。更具体一点,假如你在测试一个登陆页面,输入正确的登陆信息后,会跳转到系统首页。获取跳转后的url然后判断其是否与系统首页的url相符将是一个很不错的用例。代码importorg.openqa.selenium.WebDriver;importorg.openqa.selenium.chrome.ChromeDriver;publicclassTitleAndUrl{publicstaticvoidmain(String[]args)throwsInterruptedException{WebDriverdr=newChromeDriver();Thread.sleep(2000);Stringurl=(nowaccesss%s\n,url);dr.get(url);Thread.sleep(2000);System.out.printf(titleofcurrentpageis%s\n,dr.getTitle());System.out.printf(urlofcurrentpageis%s\n,dr.getCurrentUrl());System.out.println(browserwillbeclose);dr.quit();}}前进和后退场景说实话,这两个功能一般不太常用。所能想到的场景大概也就是在几个页面间来回跳转,省去每次都geturl。代码importorg.openqa.selenium.WebDriver;importorg.openqa.selenium.chrome.ChromeDriver;publicclassForwardAndBack{publicstaticvoidmain(String[]args)throwsInterruptedException{WebDriverdr=newChromeDriver();Thread.sleep(2000);StringfirstUrl=(nowaccesss%s\n,firstUrl);dr.get(firstUrl);Thread.sleep(1000);StringsecondUrl=(nowaccesss%s\n,secondUrl);dr.get(secondUrl);Thread.sleep(1000);System.out.printf(nowbackto%s\n,firstUrl);dr.navigate().back();Thread.sleep(1000);System.out.printf(forwardto%s\n,secondUrl);dr.navigate().forward();Thread.sleep(1000);System.out.println(browserwillbeclose);dr.quit();}}简单的对象定位场景测试对象的定位和操作是webdriver的核心内容,其中操作又是建立在定位的基础之上,因此对象定位就越发显得重要了。定位对象的目的一般有下面几种操作对象获得对象的属性,如获得测试对象的class属性,name属性等等获得对象的text获得对象的数量webdriver提供了一系列的对象定位方法,常用的有以下几种idnameclassnamelinktextpartiallinktexttagnamexpathcssselector代码html代码form.htmlhtmlheadmetahttp-equiv=content-typecontent=text/html;charset=utf-8/titleForm/titlescripttype=text/javascriptasync=src===stylesheet/scriptsrc==form-horizontaldivclass=control-grouplabelclass=control-labelfor=inputEmailEmail/labeldivclass=controlsinputtype=textid=inputEmailplaceholder=Emailname=email/div/divdivclass=control-grouplabelclass=control-labelfor=inputPasswordPassword/labeldivclass=controlsinp
本文标题:webdriver实用指南乙醇Java版
链接地址:https://www.777doc.com/doc-5267874 .html