其实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编程