java之webdriver教程(UI自动化)类推python

其实python也有一套,逻辑一模一样,就语法也只是差那么一点点。

语言差异但是逻辑不变

本教程浏览器用firefox其实chrome也是可以的,但是firefox好处是可以装插件,比如selenium IDE
 

步骤:

1,安装firebug插件:将firebug-2.0.8-fx.xpi拖到FireFox36浏览器中就会安装

2,安装selenium IDE 直接在扩展组件里下载

3,定位节点

(1)单斜线“/”代表绝对路径,而双斜线“//”符合都会被选出来

(2)/*代表通配符

(3)选择分支 /cd[0]  /cd[last()]

(4)选择一个以上的路径用“|”

(5)选择属性用“@”

 

 

软件测试的方法:等价类划分法、边界值分析法、错误猜测法、

 

数据驱动方式有好多种,既可以从Excel  中读取数据,也可以 从XML 中读取,还可以从代码数据提供者中读取

WD演变:IDE,断言,二次封装,数据驱动(数据与代码分离),POM 页面对象管理(测试元素与代码分离),关键字驱动,自动化管理平台(元素录入,用例管理,测试报告检索)

 

前提准备:

工具:myeclipse+firefox 36+selenium2.48+jdk1.7+testng5.12+selenium ide

      +Xpath checker

 

1,新建java project

2,导入selenium2.48包

(2.1)工程项目右键properties>java bulid path>libraries>add jars

把libs文件全部jar包添加上,再添加selenium 2.48两个jar

(2.2)关联webdriver源码:将selenium2.48右键>java source attachment选中2.48-srcs>ok

3,将org.testng复制至D:\MyEclipse10\dropins;将testng导入到项目中

 

Webdriver基础知识:

 

tsetng的介绍:

TestNG 是一个设计用来简化广泛的测试需求的测试框架,从单元测试(隔

离测试一个类)到集成测试(测试由有多个类多个包甚至多个外部框架组成的整

个系统,例如运用服务器)。

a. TestNG 是一个设计用来简化广泛的测试需求的测试框架,从单元测试到

集成测试

这个是TestNG 设计的出发点,不仅仅是单元测试,而且可以用于集成测试。

设计目标的不同,对比junit 的只适合用于单元测试,TestNG 无疑走的更远。

可以用于集成测试,这个特性是我选择TestNG 的最重要的原因。

 

b. 测试的过程的三个典型步骤,注意和junit(4.0)相比,多了一个将测试

信息添加到testng.xml 文件或者build.xml

测试信息尤其是测试数据不再写死在测试代码中,好处就是修改测试数据

时不需要修改代码/编译了,从而有助于将测试人员引入单元测试/集成测试。

 

c. 基本概念,相比junit 的TestCase/TestSuite,TestNG 有

suite/test/test method 三个级别,即将test/test method 明确区分开了。

 

【对浏览器操作】

1,打开一个浏览器

public class OpenBrowsers {

public static void main(String[] args) {

 

//打开默认路径的firefox

WebDriver diver = new FirefoxDriver();

 

//打开指定路径的firefox,方法1

System.setProperty("webdriver.firefox.bin","D:\\ProgramFiles\\Mozilla Firefox\\firefox.exe");

WebDriver dr = new FirefoxDriver();

 

//打开指定路径的firefox,方法2

File pathToFirefoxBinary = new File("D:\\Program Files\\Mozilla Firefox\\firefox.exe");  

FirefoxBinary firefoxbin = new FirefoxBinary(pathToFirefoxBinary);  

WebDriver driver1 = new FirefoxDriver(firefoxbin,null);

}

}

 

2,打开具体的url

public class OpenUrl {

public static void main(String []args){

String url = "http://www.51.com";

WebDriver driver = new FirefoxDriver();

 

//用get方法

driver.get(url);

 

//用navigate方法,然后再调用to方法

driver.navigate().to(url);

}

}

 

3,关闭浏览器

public class CloseBrowser {

public static void main(String []args){

String url = "http://www.51.com";

WebDriver driver = new FirefoxDriver();

driver.get(url);

 

//用quit方法

driver.quit();

 

//用close方法

driver.close();

}

}

 

4,返回当前的url和title

public class GetUrlAndTitle {

public static void main(String []args){

String url = "http://www.google.com";

WebDriver driver = new FirefoxDriver();

 

driver.get(url);

 

                //得到title

String title = driver.getTitle();

 

                //得到当前页面url

String currentUrl = driver.getCurrentUrl();

 

                //输出title和currenturl

System.out.println(title+"\n"+currentUrl);

 

}

}

5,其他方法getWindowHandle()    返回当前的浏览器的窗口句柄

getWindowHandles()  返回当前的浏览器的所有窗口句柄

getPageSource()         返回当前页面的源码

 

 

 

【定位页面元素】

 

selenium-webdriver提供了强大的元素定位方法,支持以下三种方法。

单个对象的定位方法

多个对象的定位方法

层级定位 

定位单个元素

在定位单个元素时,selenium-webdriver提示了如下一些方法对元素进行定位。

 

 By.className(className))    

 By.cssSelector(selector)       

 By.id(id)                     

 By.linkText(linkText)          

 By.name(name)             

 By.partialLinkText(linkText)

 By.tagName(name)       

 By.xpath(xpathExpression)  

 

注意:selenium-webdriver通过findElement()\findElements()等find方法调用"By"对象来定位 和查询元素。By类只是提供查询的方式进行分类。findElement返回一个元素对象否则抛出异常,findElements返回符合条件的元素 List,如果不存在符合条件的就返回一个空的list。

更多内容请关注新手py编程

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

py编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值