Selenium UI自动化怎么实现

  • 一、python+selenium UI自动化怎么实现
  • 二、自动化测试Selenium Webdriver实现web UI自动化
    • 2.1 意义
    • 2.2 selenium组成
    • 2.3 selenium工作原理
      • 2.3.1 Selenium IDE 的安装及使用
    • 2.4 环境搭建
    • 2.5 webdriver中如何启动浏览器
      • 2.5.1 启动Firefox浏览器
      • 2.5.2 启动Chrome 浏览器
      • 2.5.3 启动ie浏览器 同Chrome类似
    • 2.6 页面元素定位
    • 2.6 selenium种用到的 webdriver API
      • 2.6.1 打开地址
      • 2.6.2 操作浏览器
      • 2.6.3 获取cookie
      • 2.6.4 输入框操作
      • 2.6.5 选择框
      • 2.6.6 页面元素
      • 2.6.7 鼠标事件
      • 2.6.8 键盘事件
      • 2.6.9 等待

一、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)

Selenium UI自动化怎么实现相关推荐

  1. python selenium UI自动化解决验证码的4种方法

    测试环境 windows7+ firefox50+ geckodriver # firefox浏览器驱动 python3 selenium3 selenium UI自动化解决验证码的4种方法:去掉验证 ...

  2. Selenium UI 自动化获取接口数据

    Selenium UI 自动化获取接口数据 1.前端向接口的传参: 2.捕获到接口返回的内容后,判断前端是否有按照接口返回的内容进行展示 针对第一点,我上家公司是做旅游的,旅客预订完人数.房间数后前端 ...

  3. Python+Selenium UI自动化 - 调用JS代码

    当webdriver遇到无法完成的操作时候,这个时候可以使用javascript来完成,webdriver提供了execute_script()接口来调用js代码. 执行js有两种场景: 1.在页面上 ...

  4. Python Selenium UI自动化:滚动条滑动

    文章目录 问题 滑动至固定位置 Window 对象方法 - scrollTo js&python:滑动至固定位置 滑动至元素 元素对象方法 js&python:滑动至元素 问题 在UI ...

  5. selenium UI自动化实战

    创建了一个测试群,大家相互总结资料分享最新得技术,目前群里面云集大量得大厂测开,问题基本都能解决 ,加我好友加入哦 总结得资料分为面经与技术文档总结 面试总结包含:linux.mysql.python ...

  6. Python Selenium UI自动化 ⽂件上传

      UI自动化进行文件上传,其实本质就是将所需上传的文件路径,传递给后端服务即可,至于读取文件的过程,其实开发人员已经在后端服务中完成了.所以我们要做的就是:拿到文件路径 -> 传出去.那么这里 ...

  7. Selenium UI自动化验证码:识别+输入

    思路:使用UI+接口的方式来查找验证码图片和获取验证码元素进行参数输入(用截图方式)(非图片类型验证码无法实现) 我们以访问当当网的注册界面来演示 1.通过selenium定位查找验证码并截图保留 1 ...

  8. Python+Selenium UI自动化 - alert/confirm/prompt窗口处理方法

    WebDriver中处理原生JS的alert.confirm以及prompt非常方便,三种弹出窗口均无法直接通过页面元素定位,不关闭窗口无法在页面上做其他操作 语法:         text:返回a ...

  9. 【selenoid】selenoid的配置、安装、使用、Docker + Selenoid 搭建Selenium UI自动化运行环境、Docker中的Selenium、Selenium Grid

    selenoid Selenoid 是一个强大的 Selenium hub 实现,使用 Docker 来启动浏览器容器. selenoid优缺点 优点: 开源 安装简单 运行过程可视化,支持多版本浏览 ...

  10. Python+Selenium UI自动化 - cookie处理方法及适用场景

    方法一:手动登录系统后,F12查看页面cookies的值,键值对的形式写入代码中 add_cookie方法,实际编写时,遇到某些参数无效的报错 可以直接把对应的键值对删除,举例仅写了一行数据,实际运行 ...

最新文章

  1. loadruner中加中Java_Script
  2. PC问题-VMware Workstation出现“文件锁定失败”
  3. OpenGL屏幕空间环境光遮挡的实例
  4. QT与opencv(二)开启摄像头
  5. matlab幂次变换代码,常用的一些图像处理Matlab源代码
  6. 为什么强化学习会成为当下超火的研究领域?
  7. php微信使用腾讯地图进行定位,微信定位+腾讯地图导航
  8. Ajax提交表单数据(包含文件)
  9. RHEL6入门系列之三十一,管理计划任务
  10. 如何下载自己喜欢的网站
  11. 三菱RS指令无协议通信功能概述
  12. 微信小程序详细教程-10分钟完成微信小程序开发部署发布
  13. 5g局域网传输速度_4G5G和上网带宽与下载速度的换算方法
  14. 看什么书可以提高情商?提高情商的书籍排行榜
  15. Vue组件——数字滚动抽奖效果
  16. vue-seamless-scroll 列表自动滚动
  17. HTML期末学生大作业 响应式动漫网页作业 html+css+javascript
  18. Java获取IP工具类以及使用
  19. 编程语言c沙浦,大兴智能机械数控加工中心自动编程的分类及其编程特点
  20. 痛苦的苏格拉底与快乐的猪

热门文章

  1. linux下keytool生成证书_keytool命令
  2. 如何设置CSDN的ID(仅新建可设置)
  3. java+spring+vue基于ssm的员工公寓后勤管理系统
  4. python when库_python 库收集
  5. 最新cs1.6服务器ip地址,CS1.6 IP地址大全(死亡奔跑等)
  6. HeadFirstJava学习心得——javaGUI编程
  7. Windows每月更新补丁离线安装包下载
  8. 多线程下载辅助类实现
  9. 第十二届蓝桥杯模拟赛Python组(第一期)
  10. 增值税电子发票的对接系统的设计