selenium自动化测试教程,selenium自动化测试实战

http://www.itjxue.com  2023-01-08 16:27  来源:未知  点击次数: 

Web UI自动化测试之Selenium3

一、WebDriver(import org.openqa.selenium.WebDriver)操作浏览器

selenium通过WebDriver对象来定位页面元素

1、打开浏览器

打开火狐浏览器:

WebDriver driver = new FireFoxDriver();

打开IE浏览器:

WebDriver driver = new InternetExplorerDriver();

打开chrome浏览器

WebDriver driver = new ChromeDriver();

2、最大化浏览器

driver.manage().window().maximize();

3、关闭浏览器

driver.close();

driver.quit();

4、打开测试页面

driver.get("http:");

二、By(org.openqa.selenium.By) 定位页面元素

selenium通过By对象来定位页面元素

1、By.id 通过ID定位页面元素

By.id("UserCode")

2、By.name 通过name定位页面元素

By.id("UserCode")

3、By.className 通过className定位页面元素

By.className("input_class")

4、By.linkText 精确查找

drive.get("");

By.linkText("百科");

5、By.partialLinkText 模糊查找

driver.get("");

By.partialLinkText("百科");

6、By.tagName

dirver.get("");

By.tagName("input");

三、WebElement(org.openqa.selenium.WebElement)操作页面元素

selenium通过WebElement对象来操作页面元素

1、操作输入框

WebElement inputElement = driver.findElement(By.id("UserCode"));//查找登录页面录入用户名元素

inputElement.setKeys("wyl");//输入框录入用户名wyl

inputElement.clear();//清空输入框

inputElement.getText();//获得输入框中的内容

2、操作单选框

WebElement radioElement = driver.findElement(By.id("Orders"));

radioElement.click();// 选择某个单选项

radioElement.clear();// 清空某个单选项

radioElement.isSelected();// 判断某个单选项是否已被选择

3、操作多选框

WebElement checkboxElement = driver.findElement(By.id("Orders"));

checkboxElement.click();// 选择某个多选项

checkboxElement.clear();// 清空某个多选项

checkboxElement.isSelected();//判断某个多选项是否已被选择

4、操作下拉框

Select select = new Select(per.findElement(By.id("region")));

select.selectByVisibleText("北京市");

select.selectByText("10010");

select.deselectAll();

select.deselectByVisibleText("北京市");

select.deselectByText("10010");

select.getAllSelectedOptions();

select.getFirstSelectedOption();

5、操作上传文件

WebElement uploadElement = driver.findElement(By.id("file"));

String uploadFile = "D:1AgentCode.txt";

uploadElement.setKeys(uploadFile);

6、操作按钮

WebElement btnElement = driver.findElement(By.id("add"));

btnElement.click();

btnElement.isEnabled();

7、表单提交

WebElement formElement = driver.findElement(By.id("fm"));

fromElement.submit();

8、操作弹出对话框

Alert alert = driver.swichTo().alert();

alert.getText();//获得弹出框内容

alert.accept();//点击弹出框确认按钮

alert.dismiss();//点击弹出框取消按钮

9、Windows和Frames之间的切换

driver.switchTo().defaultContent();//返回到最顶层的frame

driver.switchTo().frame("leftMenuFrame");//切换到左侧菜单frame

driver.switchTo().window("windowName");//切换到某个windows

10、超时设置

driver.manage().timeouts().implicitly(10,timeUnit.Seconds);//识别元素时的超时时间

driver.manage().timeouts().pageLoadTimeout(10,timeUnit.Seconds);//页面加载时的超时时间

driver.manage().timeouts().setScriptTimeout(10,timeUnit.Seconds);//异步脚本的超时时间

四、调用js

JavascriptExecutor js = (JavascriptExecutor)driver;

js.executeScript("JS脚本");

五、Selenium官方

1、官方download包下载地址

2、官方User Guide

3、API

怎样开始用selenium进行自动化测试

作为一个之前没接触过selenium的新手来说,如果之前有过写代码的经验,那么学习起来就会更加快速!但无论如何,开始总是比较难的!

我也是从一个接近纯24K小白成长起来的,一步一个脚印,在这个过程中我学习到了很多新的知识,有了新的突破,新的成长,不断地努力,不断地尝试,不断地总结经验,让我一直走到了今天,未来,还有很多路要走!义无反顾,我的测试之路!

所以,今天抽空回顾一下我的selenium学习过程,也就是,selenium自动化测试怎么开始,这些,是我的个人经验,分享出来给大家参考!

一开始,基本上很多人都是用selenium IDE录制脚本开始的,我也是!有一本书写得很不错:selenium初学者指南!So,从录制回放开始我的selenium,而在这个过程中,不断地去补充我的html css知识,熟悉selenium的api!

慢慢地,发现录制的脚本在回放的时候经常报错,通过检查发现,是定位上的错误,导致这种定位的错误的最大原因是系统前端采用了某种框架,如tigerUI,exj....所以HTML里面的标签很多都是动态的,比如id,class,name!这对selenium操作定位的元素而进行自动化来说是致命伤!

所以,开始自己写定位信息,这已经是必须的了!从而学习了xpth和css选择器,掌握了更加有效,快速和稳定地定位页面上的元素(定位的时候难免会碰到有iframe,这就得先切换到iframe中再进行定位了)!也就是,在selenium IDE上写脚本!

信心满满地在selenium IDE上写了长长地一段脚本,并且反复跑都能成功!总算尝到了一点点幸福的滋味!然后呢,问题来了,当我要修改和扩展这段的脚本的时候,才发现这效率是相当地低!一句句查!一句句改!多么痛的领悟!

另外,selenium IDE 默认启动的是火狐,在使用selenium RC 启动 IE 进行跑脚本时浏览器总是会报错!各种搞不定,各种不淡定!决定放弃使用IDE!

selenium有一个强大之处就是支持多种语方:java,C#,python等等,并且可以把录制的脚本转换成代码!我用的是java,果断走起!

不用说,当然是把脚本转为java代码了,在Eclipse中重新开始搞!

选择一个测试框架:有Junit和TestNg两个选择,公司用的是junit,所以,不用多说,我就用junit验证selenium脚本的运行结果!并且,Junit和TestNG都可以生成比较直观的测试报告!

写好一些代码,会看到整段代码中密密麻麻充斥着基本相同的代码:开始封装代码!把常用到API封装起来!封装好之后代码看着就舒服多了!

接下来,是不是也应该把代码中的定位信息用一个专门的文件放起来,再去读取里面的定位信息,这样,维护代码和维护定位信息就放在了两个地方,不用老是扎在代码和定位路径中,简单地分一下层!果断尝试!

到这里,脚本写出来了,常用的api封装起来了,定位路径分离出来了!整个代码简洁多了!写起来容易和舒服多了!这时候,该个性化定制一下自己的框架了,这里,就暂时不写下去了,已经离怎样开始selenium挺远的了!或许,到了这一步,你早就有自己对测试框架的想法和对脚本的设计方法了。。。。加油吧,把想法化为实际的动力,继续向前!

selenium自动化原理

使用selenium webdriver实现自动化:

1,首先要有自动化测试脚本(python实现)

2,安装浏览器

3,对需要控制的浏览器安装驱动

工作过程:

脚本(python文件--客户端)----》驱动程序(发送json串)----》浏览器

浏览器:内部提供了操作页面的接口,它收到了json串后,去触发相关的操作

(点击、输入等)

(责任编辑:IT教学网)

更多

推荐MYSQL文章