selenium webdriver学习

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

seleniumwebdriver学习一、快速开始博客分类:Selenium-webdriverseleniumwebdriver学习seleniumwebdriver学习历程(一)------------快速开始学习selenium已经两年了,从1.X到2.X,一直在关注它。中间由于工作原因中断了一段时间,但是一直无法割舍,最近又去官网看了一下,更新还挺快的。selenium1.X的时代将被取代,selenium-webdriver的大航海时代开始了。。。安装seleniumwebdriver(eclipse+jdk+seleniumwebdriver2.20+firefox10)1、安装firefox,本人使用firefox10。确保firefox安装在默认环境下(不是的话会报错)。2、安装jdk,确保安装了jdk,本人喜欢使用java。但seleniumwebdriver也支持其它语言,如ruby、python、C#等。3、安装eclipse,个人喜好。PrinttoPDFwithoutthismessagebypurchasingnovaPDF()4、安装seleniumwebdriver。解压下载的seleniumwebdriver包,可以在eclipse建一个userlibrary,便与项目的引入。第一个test现在以第一个seleniumwebdriver的test来感受一下它的魅力。Java代码importorg.openqa.selenium.By;importorg.openqa.selenium.WebDriver;importorg.openqa.selenium.WebElement;importorg.openqa.selenium.firefox.FirefoxDriver;publicclassFirstExampe{publicstaticvoidmain(String[]args){WebDriverdriver=newFirefoxDriver();driver.get();WebElementelement=driver.findElement(By.name(q));element.sendKeys(helloSelenium!);element.submit();try{Thread.sleep(3000);}catch(InterruptedExceptione){e.printStackTrace();}System.out.println(Pagetitleis:+driver.getTitle());driver.quit();}}正常运行后,这几行代码将会打开firefox浏览器,然后转跳到google首页。在搜索框中输入helloSelenium并提交搜索结果。等待3秒后会在命令行打印出当前页面的title,输出如下:Java代码Pagetitleis:helloSelenium!-Google搜尋并关闭ff浏览器。PrinttoPDFwithoutthismessagebypurchasingnovaPDF()二、对浏览器的简单操作博客分类:Selenium-webdriverseleniumwebdriver对浏览器的简单操作打开一个测试浏览器对浏览器进行操作首先需要打开一个浏览器,接下来才能对浏览器进行操作。但要注意的是,因为ChromeDriver是Chromium项目自己支持和维护的,所以你必需另外下载安装ChromeDriver,详细介绍查下他们的wiki。Java代码importjava.io.File;importorg.openqa.selenium.WebDriver;importorg.openqa.selenium.firefox.FirefoxBinary;importorg.openqa.selenium.firefox.FirefoxDriver;importorg.openqa.selenium.ie.InternetExplorerDriver;publicclassOpenBrowsers{publicstaticvoidmain(String[]args){//打开默认路径的firefoxWebDriverdiver=newFirefoxDriver();//打开指定路径的firefox,方法1System.setProperty(webdriver.firefox.bin,D:\\ProgramFiles\\MozillaFirefox\\firefox.exe);WebDriverdr=newFirefoxDriver();PrinttoPDFwithoutthismessagebypurchasingnovaPDF()//打开指定路径的firefox,方法2FilepathToFirefoxBinary=newFile(D:\\ProgramFiles\\MozillaFirefox\\firefox.exe);FirefoxBinaryfirefoxbin=newFirefoxBinary(pathToFirefoxBinary);WebDriverdriver1=newFirefoxDriver(firefoxbin,null);//打开ieWebDriverie_driver=newInternetExplorerDriver();//打开chromeSystem.setProperty(webdriver.chrome.driver,D:\\chromedriver.exe);System.setProperty(webdriver.chrome.bin,C:\\DocumentsandSettings\\gongjf\\LocalSettings+\\ApplicationData\\Google\\Chrome\\Application\\chrome.exe);}}打开指定路经ie和chrome方法和ff一样。打开1个具体的url打开一个浏览器后,我们需要跳转到特定的url下,看下面代码:Java代码importorg.openqa.selenium.WebDriver;importorg.openqa.selenium.firefox.FirefoxDriver;PrinttoPDFwithoutthismessagebypurchasingnovaPDF()publicclassOpenUrl{publicstaticvoidmain(String[]args){Stringurl==newFirefoxDriver();//用get方法driver.get(url);//用navigate方法,然后再调用to方法driver.navigate().to(url);}}如何关闭浏览器测试完成后,需要关闭浏览器Java代码importorg.openqa.selenium.WebDriver;importorg.openqa.selenium.firefox.FirefoxDriver;publicclassCloseBrowser{publicstaticvoidmain(String[]args){Stringurl==newFirefoxDriver();driver.get(url);//用quit方法driver.quit();//用close方法driver.close();}PrinttoPDFwithoutthismessagebypurchasingnovaPDF()}如何返回当前页面的url和title有时候我们需要返回当前页面的url或者title做一些验证性的操作等。代码如下:Java代码importorg.openqa.selenium.WebDriver;importorg.openqa.selenium.firefox.FirefoxDriver;publicclassGetUrlAndTitle{publicstaticvoidmain(String[]args){Stringurl==newFirefoxDriver();driver.get(url);//得到titleStringtitle=driver.getTitle();//得到当前页面urlStringcurrentUrl=driver.getCurrentUrl();//输出title和currenturlSystem.out.println(title+\n+currentUrl);}}其他方法getWindowHandle()返回当前的浏览器的窗口句柄getWindowHandles()返回当前的浏览器的所有窗口句柄getPageSource()返回当前页面的源码PrinttoPDFwithoutthismessagebypurchasingnovaPDF()小结从上面代码可以看出操作浏览器的主要方法都来自org.openqa.selenium.WebDriver这个接口中。看了一下源代码这些方法都是在org.openqa.selenium.remote.RemoteWebDriver这个类中实现的,然后不同浏览的driver类继承RemoteWebDriver。三、执行js脚本博客分类:Selenium-webdriver在用selenium1.X的时候常常会用到getEval()方法来执行一段js脚本来对页面进行处理,以处理一些遇到的问题。当然seleniumwebdriver也提供这样的一个方法:executeScript()Java代码importorg.openqa.selenium.JavascriptExecutor;importorg.openqa.selenium.WebDriver;publicclassSimpleExample{publicstaticvoidmain(String[]args){WebDriverdriver=newFirefoxDriver();((JavascriptExecutor)driver).executeScript(alert(\hello,thisisaalert!\));}}上面是一个最简单的例子,打开一个浏览器,然后弹层一个alert框。注意这里的driver要被强制转换成JavascriptExecutor。下面演示在打开51.com首页如何得到帐号输入框中显示的字符,并打印输出。Java代码PrinttoPDFwithoutthismessagebypurchasingnovaPDF()importorg.openqa.selenium.JavascriptExecutor;importorg.openqa.selenium.WebDriver;publicclassFirstExampe{publicstaticvoidmain(String[]args){WebDriverdriver=newFirefoxDriver();driver.get();Stringjs=varuser_input=document.getElementById(\passport_51_user\).title;returnuser_inpu

1 / 45
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功