Selenium2(WebDriver)_第1页
Selenium2(WebDriver)_第2页
Selenium2(WebDriver)_第3页
Selenium2(WebDriver)_第4页
Selenium2(WebDriver)_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Selenium2(WebDriver)介绍 Selenium2是一种用于Web应用程序测试工具,它提供了一套友好的API,与Selenium1相比,它的API更容易理解和使用,其可读性和可维护性也大大提高。Selenium2完全就是一套类库,不依赖与任何测试框架,不需要启动其他进程或安装其他程序,也不必像Selenium1那样需要先启动服务。选择浏览器开始测试 要开始测试,首先得清楚要测试什么浏览器,在Selenium2中,一共支持以下几种浏览器的测试。FirefoxIEChromeOperaAndroidiPhone启动FirefoxDriverpackage test;import or

2、g.openqa.selenium.*;import org.openqa.selenium.WebDriver.*;import org.openqa.selenium.firefox.*;public class Project1Class /* * param args */public static void main(String args) / TODO Auto-generated method stubWebDriver dirver = new FirefoxDriver();浏览器导航对象Navigation 打开了浏览器之后,就可以打开指定的页面来进行测试,在Seleni

3、um2中,要导航页面,需要用到Navigation对象。 可以通过WebDriver的Navigate()方法获得Navigation对象实例,代码如下。 WebDriver driver = new FirefoxDriver(); Navigation navigation = driver.navigate();To()方法 对Java来说,可以使用to()来进行跳转。在这两个方法中,只需要将URL作为参数即可,程序代码如下。 WebDriver driver = new FirefoxDriver(); Navigation navigation = driver.navigate()

4、; navigation.to(“http:/”);注意:执行to()方法时,代码会自动等待页面加载完毕再执行下一句,也就是浏览器状态栏为“完成”时再执行下一句。Back()/forward()方法 在浏览器上,可以按“前进”和“后退”按钮来进行导航,通过back()/forward(),也可以实现这种导航功能。 WebDriver driver = new FirefoxDriver(); Navigation navigation = driver.navigate(); navigation.to(“http:/”); navigation.back(); navigation.forw

5、ard();refresh()方法 使用该方法将刷新页面(类似于按F5建的效果),多用于执行某些操作后需要刷新的情况。navigation.refresh();查找条件对象By 在导航到对应页面后,就可以对页面上的元素进行操作了,然后,在进行操作之前,必须要找到相应的元素。如何才能找到这些元素呢?需要使用查找条件对象”By”进行查找。Id 查找 可以按照HTML元素的ID属性进行查找。例如,百度首页有一个搜索文本框,其HTML代码如下: WebElement baiduTextBox = driver.findElement(By.Id(“kw1”); baiduTextBox.sendKey

6、s(“找到文本框”);name查找 Name方法按name进行查找,与按ID进行查找类似,例如百度首页上有“登录”超级连接,如下图: WebElement loginButton = driver.findElement(B(“tj_login”);partialLinkText查找 partialLinkText方法按链接的文本进行模糊查找。例如,百度首页上有“登录”超级链接 登录 WebElement loginButton = driver.findElement(By.partialLinkText(“登录”);className查找 className方法按元素的Clas

7、s属性进行查找。例如,百度贴吧上有“全吧搜索”超级链接,如图 全吧搜索 WebElement loginButton = driver.findElement(By.className(“search_btn j_search_post ”);操作页面元素WebElement 在通过WebDriver的FindeElement()方法获得WebElement的对象后,就可以通过该页面元素进行各种操作了。 1、click() 操作 (相当于点击) 2、sendKeys(“输入的文本”) (输入文本操作) 3、clear()操作 (用于清空input元素的值) 4、submit()操作 (用于对指

8、定元素所在的form元素进行提交)获取页面及页面元素的内容 1、getTitile() :用于获取当前网页的标题。 2、getCurrentUrl() :用于获取当前网页的URL 3、getText() :用于获取某个元素的文本值。 4、isSelected() : 用于存储复选框或单选框的勾选情况,返回值为true(勾选)或false(未勾选)。 5、isEnabled() :用于存储input等元素的可编辑状态,例如文本框、复选框和单选框的可编辑状态,如果可以编辑,则返回true,否则返回false。获取页面及页面元素的内容 6、isDisplayed() 用于表示元素是否显示,如果为tr

9、ue 说明元素可以显示在页面上,如果为false 则隐藏着。 7、getAttribute(attributeName) 用于获取元素的属性值。弹出对话框的处理 JavaScript共有3种对话框Alert、Confirmation以及Prompt Alert:警告对话框,只有一个“确定按钮”弹出对话框的处理 JavaScript共有3种对话框Alert、Confirmation以及Prompt Confirmation:确认对话框,需要选择。弹出对话框的处理 JavaScript共有3种对话框Alert、Confirmation以及Prompt Prompt:输入对话框,需要输入内容。弹出对

10、话框的处理 1、Accept() 单击弹出对话框的确认按钮,可以同时对Alert、Confirmation以及Prompt使用。 2、Dismiss()单击弹出对话框的取消按钮,可以同时对Alert、Confirmation以及Prompt使用。 3、SendKeys(keys) 在弹出对话框中输入文本,该方法只对Prompt弹出对话框有效。 4、getText() 用于获取弹出对话框的文本内容。浏览器多窗口处理 在进行Web测试时,还会弹出一些子窗口,并且在多个窗口之间进行切换操作。 例如,在百度首页,单击“注册超级连接”。 弹出一个标题为“百度帐号注册”的新页面,接下来以百度帐号注册窗口为

11、例,讨论如何测试多个窗口之间的切换。浏览器多窗口处理 getWindowHandles() 要在多个页面之间切换,首先必须获取每个窗口的唯一标识符,通过getWindowHandles()可以获取所有打开窗口的标识符,并将其以集合的形式返回。 String handles = new Stringdriver.getWindowHandles().size(); driver.getWindowHandles().toArray(handles);浏览器多窗口处理 Window(windowName)新窗口弹出后,可以通过它的标识切换到窗口,再对该窗口元素进行操作。 String handle

12、s = new Stringdriver.getWindowHandles().size(); driver.getWindowHandles().toArray(handles); WebDriver childWindow = driver.switchTo().window(handles1);Iframe问题的解决办法像此时的用户名输入,是无法通过普通的元素定位及操作完成的,因为用户名元素在iframe里面。Iframe问题的解决办法 此时,必须先定位到用户名所在的iframe中,再进行用户名的定位才可以进行相关的操作。 可以通过一下方法定位iframe driver.SwitchTo

13、().Frame(“content)Iframe问题的解决办法 此外还有个问题,就是相关的操作是在不同的frame中定位元素的。比如,先在left_frame中定位元素Id=TestFor1,然后在right_frame中定位元素Id=TestFor2。 这种情况下,先切到left_frame,driver.SwitchTo().Frame(left_frame);再定位元素TestFor1,driver.FindElement(By.Id(TestFor1); 再切到默认的content,driver.SwitchTo().DefaultContent(); 再切到right_frame,d

14、river.SwitchTo().Frame(right_frame);再定位元素TestFor2,driver.FindElement(By.Id(TestFor2);为测试操作添加事件 如果想要在执行测试操作时执行自定义的处理或则进行截图,可以使用EventFiring-WebDriver。它可以为各个操作添加事件,并能对测试进行截图。 假设现在要对各类操作执行一下自定义处理。 1)在执行打开网页的操作时,需要分别记录打开前和打开后的URL地址。 2)在查找某个页面元素时,查找之前和之后都需要记录查找条件。 3)在对页面元素进行单击操作时,单击前需要记录元素的查找条件,单击前需要记录元素的查找条件,单击后记录记录URL地址。为测试操作添加事件 4)在对页面元素的值进行更改时,需要分别记录更改前的值和更改后的值。 5)在发生异常的时候,需要进行截图,将截图文件保存至D:,用当前日期命名截图文件。 要实现以上自定义处理,可以通过EcentFiringW

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论