WebUI自动化之Selenium,基于java

一、什么是Selenium?

    1、“Selenium”是一个项目的名字,它包括了一组工具和API:Selenium IDE,Selenium RC,Selenium WebDriver,和Selenium Grid等。其中Selenium IDE是一个Firefox的插,这篇文章我们主要来看下Selenium WebDriver。Selenium WebDriver 是一个支持浏览器自动化的工具。它包括一组为不同语言提供的类库和“驱动”(drivers)可以使浏览器上的动作自动化

二、 Selenium   WebDriver  入门使用

    1、创建Selenium 的java项目

首先我们来看下官方文档,https://www.seleniumhq.org/docs/06_test_design_considerations.jsp

设置Selenium 2.0 Java项目的最简单方法是使用Maven.。创建一个maven项目,在pom.xml文件中引入对应版本的jar包就可以。 版本号都可以吧,看自己的需求。如图是我引入的版本号

WebUI自动化之Selenium,基于java_第1张图片

2、常用的一些API文档

    1)关于浏览器的一些操作,以下以Chrome为例

    打开chrome浏览器:WebDriverdriver = new ChromeDriver(); 

    最大化浏览器:driver.manage().window().maximize();

    关闭浏览器:driver.close();    driver.quit();

    打开页面:driver.get("http://www.google.com");

                    driver.navigate().to("http://www.baidu.com/"); 

                    navigate方法会产生1个Navigator对象,其封装了与导航相关的一些方法,比如前进后退刷新等

    2)关于定位元素:

    findElement(By.id())   通过id属性定位元素

    findElement(By.name())     通过name属性定位元素

    findElement(By.className())    通过class属性定位元素

    findElement(By.tagName())    通过HTML标签名定位元素

    findElement(By.linkText())   通过链接内容定位元素

    findElement(By.partialLinkText())    通过部分链接内容定位元素

    findElement(By.xpath())        通过css选择器定位元素

    findElement(By.cssSelector())     通过xpath定位元素

3)关于鼠标事件

鼠标事件,首先要引入actions类。Actions action =new Actions(driver);

actions类提供了一些常用的方法

. contextClick()    右击

· clickAndHold()   鼠标点击并控制

· doubleClick()    双击

· dragAndDrop()   拖动

· release()        释放鼠标

· perform()  执行所有Actions中存储的行为

4)关于iframe


WebUI自动化之Selenium,基于java_第2张图片

第一个是根据frame的索引来定位,第二个是根据frame的ID或者name去识别,第三个是根据该frame内部一个元素去识别,第四个就是从frame内部切换到默认的Top Window的方法。

这里要注意,利用索引来切换frame的时候只有对平级的iframe才有效果,如果是嵌套的iframe,建议是根据ID或者name去切换。当然某些情况下可能没有ID或者name是随即生成的,这个时候可以先找到对应的iframe的xpath。再根据xpath去切换。例如:

WebElementtxtFMortgageDeptName=driver.findElement(By.xpath("/html[1]/body[1]/div[5]/iframe[1]" ));

driver.switchTo().frame(txtFMortgageDeptName);

虽然iframe的切换常用的只有以上几种方式,但是在整个过程当中,还是被iframe的坑 整得崩溃。说出来都是泪,一时半会感觉表达不清楚。如果有同行碰到坑,欢迎留言。比如已经进入了一个iframe,想要直接切换到另一个嵌套的子iframe,居然报错。后来每次都是先切换到主窗口,driver.switchTo().defaultContent();然后再进行切换。最最最重要的是,还是在看运行时,整个网页的dom结构,再决定如何去切换iframe。

三、 Selenium WebDriver 的一些简单封装

你可能感兴趣的:(WebUI自动化之Selenium,基于java)