IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> Selenium UI自动化怎么实现 -> 正文阅读

[开发测试]Selenium UI自动化怎么实现

一、python+selenium UI自动化怎么实现

  • 首先在电脑pip下载安装selenium
  • 下载对应浏览器的版本驱动
  • 在Python编辑器pycharm里面导入webdriver(这个是Selenium最重要的东西)
    webdriver是通过各种浏览器的驱动来驱动浏览器的
  • 然后实例化driver,在python写入要打开网页的网址,具体的操作,去页面定位我们需要操作的功能流程
  • python编辑器把对应的定位写入,注意设置‘睡眠时间’,模拟人操作的场景,没设置的sleep的话,有时候浏览器读取慢
  • 运行

二、自动化测试Selenium Webdriver实现web UI自动化

2.1 意义

减少人力成本,完成手工不能完成的工作,提高测试效率,完成大量重复性工作
选择自动化工具,框架 Selenium Webdriver
自动化测试不是写脚本,而是一种构建自动化框架的思想

2.2 selenium组成

selenium RC
selenium IDE 录制
selenium Webdriver
selenium Grid 分布式

2.3 selenium工作原理

2.3.1 Selenium IDE 的安装及使用

Selenium IDE的web录制功能能将操作动作录制下来并且能保存成相应的代码,较为方便
目前来说,有三种情况选择
谷歌商店搜索selenium IDE下载
火狐浏览器,设置中附加组件搜索下载selenium IDE即可
本地下载后在Firefox中添加组件
打开火狐浏览器,点击“打开菜单”->“附加组件”
在右侧搜索框中输入“Selenium IDE”
下拉找到“Selenium IDE”,点击“添加到FireFox”,并点击安装
安装完毕后点击重启火狐浏览器,至此便可在火狐浏览器菜单栏-工具种中查看到Selenium IDE工具条

2.4 环境搭建

python
pip是一个安装和管理python包的工具,使用pip安装非常的方便
pip install selenium

java 环境
JDK下载后配置环境变量JAVA_HOME
尝试在eclipse中新建java项目,引入selenium相关的jar包,添加testNG

selenium
Python装selenium,直接pip

2.5 webdriver中如何启动浏览器

2.5.1 启动Firefox浏览器

webdriver自带Firefox的驱动,所以启动Firefox浏览器为

//引入selenium驱动 
import org.openqa.selenium.*;
public class testDriver{
    WebDriver driver;
    System.setProperty("webdriver.firefox.bin","\\Firefox\\firefox.exe");  
    driver = new FirefoxDriver();
    String url = "http://www.baidu.com";
    driver.get(url);
    driver.quit()}
2.5.2 启动Chrome 浏览器
//引入selenium驱动 和Chrome包
import org.openqa.selenium.*;
import org.openqa.selenium.chrome.*;
public class testDriver{
    WebDriver driver;   System.setProperty("webdriver.chrome.driver","\\chromedriver\\chromedriver.exe"); //与Firefox.bin不同
    driver = new ChromeDriver();
    String url = "http://www.baidu.com";
    driver.get(url);
    driver.quit()}
2.5.3 启动ie浏览器 同Chrome类似
//引入selenium驱动 和InternetExplorer包
import org.openqa.selenium.*;
import org.openqa.selenium.InternetExplorer.*;
public class testDriver{
    WebDriver driver;   System.setProperty("webdriver.chrome.driver","\\chromedriver\\chromedriver.exe"); //与Firefox.bin不同
    driver = new InternetExplorerDriver();
    String url = "http://www.baidu.com";
    driver.get(url);
    driver.quit()}

2.6 页面元素定位

UI自动化开始的第一部是对页面元素的定位,因为自动化的脚本实际上就是对这些元素的操作,这是第一步,当然自动化不是简单的寻找到元素点击跳转就可以了,而是提供一种框架或者模版,能够使功能测试可以应用脚本去完成
常见的元素定位方式有:

//driver.findElement(By.id("kw") ).sendkeys("test");  html中ID是唯一的
//driver.findElement(By.name("wd") ).sendkeys("test");  name 是指元素的名称
//driver.findElement(By.className("s_ipt") ).sendkeys("test"); 元素的类名
//driver.findElement(By.tagName("input") ).sendkeys("test");   //每个元素本质也是一个tag  默认取第一个标签,一般要加上判断条件才能筛选到想要的那个元素
//driver.findElement(By.linkText("新闻") ).click(); 文本链接
//driver.findElement(By.partialLinkText("新") ).click(); 部分文本链接
//driver.findElement(By.xpath(".//*[@id='form']/span[1]") ).sendkeys("test");  //根据绝对路径 或者 元素属性值来定位,实际中可能会用到复杂的层级+属性定位

2.6 selenium种用到的 webdriver API

2.6.1 打开地址
Driver.get()  
Driver.natigate.to()
2.6.2 操作浏览器
Driver.natigate().refresh() 
Driver.natigate().forward() 
Driver.natigate().banck() 
Driver.natigate().getTitle()
Driver.getCurrentUrl()
Driver.manage().windows().maximize(); // 窗口最大化
Driver.manage().windows().set_window_size(); // 设置窗口大小
Driver.quite() //还在进程中
2.6.3 获取cookie
Set<Cookie> allCookies = driver.manage().getCookies();
driver.manage().deleteAllCookies();
2.6.4 输入框操作
sendkeys()
Clear()
getText()
Click()
2.6.5 选择框
单选 复选 下拉框
Select list = new Select(driver.findElement(By.name("listname")));
list.selectByValue("value")
2.6.6 页面元素
isdisplay()页面是否显示
find_element元素是否存在
isSelect()元素是否选中
isEnabled()是否处于灰化状态
2.6.7 鼠标事件
ActionChains类提供了鼠标操作的常用方法,
如context_click() 
grag_and_drop()
move_to_element()
2.6.8 键盘事件
send_keys(Keys.BACK_SPACE) 删除键
send_keys(Keys.SPACE) 空格键
send_keys(Keys.ENTER) 空格键
send_keys(Keys.CONTROL,'a') 全选Ctrl+A
2.6.9 等待
显式等待:
WebDriverWait(driver,timeout,poll_frequency=0.5,ignored_exceptions=None)
隐式等待:
driver.implicitly_wait(10)
  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-12-08 14:06:54  更:2021-12-08 14:07:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 6:38:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码