WebDriver拾级而上·之一环境部署(2012-05-1621:15:28)转载▼标签:seleniumwebdriver分类:Selenium1.下载安装eclipse和jdk2.下载最新的SeleniumClientDrivers在eclipse中建立项目中导入所下载的包。(如果selenium-java-2.21.0.jar导入后,运行报错,则把下载的selenium-java-2.21.0.jar包中同一级目录下的libs中的jar包全部导入)4.配置testng4.1Eclipse中点击Help-Installnewsoftware-点击Add4.2在Location输入选中Testng版本,点击Next,按照提示安装,安装完之后重启Eclipse4.4新建JavaProject,右键BuildPath,添加testng.jar4.5新建一个sum类,用来计算两整数之和,代码如下:packagecom.hpp;publicclasssum{privateintno1;privateintno2;privateintmysum;publicintadd(intno1,intno2){mysum=no1+no2;returnmysum;}}4.6再新建testngclass4.7点击finish,代码如下packagecom.test;importorg.testng.annotations.Test;importstaticorg.testng.Assert.assertEquals;importcom.hpp.sum;publicclassNewTest{privatesumnewSum=newsum();@Testpublicvoidf(){intmysum=newSum.add(1,2);assertEquals(3,mysum,Right);}}testing,xml会自动配置好的,这里不用管项目的文件结构如下:4.8在testing.xml右键点击RunAs-TestngSuite,即可看到结果如果想要换个测试用例,可以修改文件testing.xml中class标签name的值4.9也可以不用在TestngSuite模式下运行新建class,代码如下runas-JavaApplication即可。注:如果是用chrome浏览器运行脚本,需要下载最新的chromedriver.exe,放在目录C:\WINDOWS\system32下即可。下载地址:{publicstaticvoidmain(String[]args){Stringurl===aaa@aa.aa&Password=123456&key=889;//System.setProperty(webdriver.firefox.bin,D:\\ProgramFiles\\MozillaFirefox\\firefox.exe);//WebDriverdriver=newFirefoxDriver();//打开ieWebDriverie_driver=newInternetExplorerDriver();//打开chromeWebDriverdriver=newChromeDriver();driver.get(url);WebElementelement=driver.findElement(By.name(q));element.sendKeys(helloSelenium!);element.submit();try{Thread.sleep(3000);}catch(InterruptedExceptione){e.printStackTrace();}System.out.println(页面Title:+driver.getTitle()+\n页面URL:+driver.getCurrentUrl());//System.out.println(返回当前的浏览器的窗口句柄:+driver.getWindowHandle());//Strings=driver.getPageSource();s=s.substring(s.indexOf({),s.indexOf(}));//System.out.println(当前页面的源码:+s);driver.quit();}}4.10如果要在Myeclipse安装插件Testng直接把eclipse里的org.testng文件夹拷贝到dropins目录重启Myeclipse会提示如下,确定就OK了5.Eclipse中导入jar文件的源码在eclipse中导入jar文件对应的源码,主要是为了方便查看一些接口的源码,可以直接按着Ctrl+鼠标左键跳到对应的源码文件。若无法查看类,函数等信息将下载selenium-java-2.21.0包中的selenium-java-2.21.0-srcs.jar导入WebDriver拾级而上·之二浏览器操作(2012-05-1621:32:24)转载▼标签:seleniumwebdriver分类:Selenium1.启动浏览器A.firefox//打开默认路径的firefox(路径指的是firefox的安装路径)WebDriverdiver=newFirefoxDriver();//打开指定路径的firefox,方法1System.setProperty(webdriver.firefox.bin,D:\\ProgramFiles\\MozillaFirefox\\firefox.exe);WebDriverdr=newFirefoxDriver();//打开指定路径的firefox,方法2FilepathToFirefoxBinary=newFile(D:\\ProgramFiles\\MozillaFirefox\\firefox.exe);FirefoxBinaryfirefoxbin=newFirefoxBinary(pathToFirefoxBinary);WebDriverdriver1=newFirefoxDriver(firefoxbin,null);B.ie//打开ieWebDriverie_driver=newInternetExplorerDriver();C.chrome因为ChromeDriver是Chromium项目自己支持和维护的,所以你必需另外下载chromedriver.exe,放在目录下C:\WINDOWS\system32下载地址:://chromedriver.storage.googleapis.com/index.html//打开chromeWebDriverdriver=newChromeDriver();另一种启动chrome的方法wiki介绍:打开chromeSystem.setProperty(webdriver.chrome.driver,D:\\chromedriver.exe);System.setProperty(webdriver.chrome.bin,C:\\DocumentsandSettings\\fy\\LocalSettings+\\ApplicationData\\Google\\Chrome\\Application\\chrome.exe);Chromium介绍:页面跳转urlStringurl==newFirefoxDriver();A//用get方法driver.get(url);B//用navigate方法,然后再调用to方法,chrome不支持这种方法driver.navigate().to(url);3.如果页面文件在本地可以这么写WebDriverdr=newChromeDriver();//页面文件在项目src下的路径src/filename.htmlFilefile=newFile(src/filename.html);StringfilePath=file:///+file.getAbsolutePath();System.out.printf(nowaccesss%s\n,filePath);dr.get(filePath);4.关闭浏览器//quit关闭所有页面close关闭本次执行打开的页面A.//用quit方法driver.quit();B.//用close方法driver.close();5.浏览器最大化driver.manage().window().maximize();6.获取页面信息//得到titleStringtitle=driver.getTitle();//得到当前页面urlStringcurrentUrl=driver.getCurrentUrl();getWindowHandle()返回当前的浏览器的窗口句柄getWindowHandles()返回当前的浏览器的所有窗口句柄getPageSource()返回当前页面的源码//Strings=driver.getPageSource();s=s.substring(s.indexOf({),s.indexOf(}));//System.out.println(当前页面的源码:+s);7.总结操作浏览器的主要方法都来自org.openqa.selenium.WebDriver这个接口中。源代码这些方法都是在org.openqa.selenium.remote.RemoteWebDriver这个类中实现的,然后不同浏览的driver类继承RemoteWebDriver。selenium-webdriver提供了强大的元素定位方法,支持以下三种方法:单个对象的定位方法多个对象的定位方法层级定位WebDriver拾级而上·之三定位页面元素(2012-05-1622:21:06)转载▼注意:selenium-webdriver通过findElement()\findElements()等find方法调用By对象来定位和查询元素。By类只是提供查询的方式进行分类。findElement返回一个元素对象否则抛出异常,findElements返回符合条件的元素List,如果不存在符合条件的就返回一个空的list。一、定位单个元素A.使用className进行定位当所定位的元素具有class属性的时候我们可以通过classname来定位该元素。例:下面的例子定位页面上class为username的li。WebElementelement=driver.findElement(