UI自动化之Selenium介绍、Selenium定位方法

Selenium库

用于web应用程序的测试工具
模拟手工操作浏览器,进行自动化测试

特点

  1. 开源免费
  2. 多浏览器支持 —Chrome、IE、FireFox等
  3. 多平台支持 — Windows、Linux都支持
  4. 支持分布式测试(Grid)
  5. 支持录制回放和脚本生成(IDE)

Selenium三剑客

  1. WebDriver
  2. IDE 支持录制回放和脚本生成
  3. Grid 支持分布式测试

官方文档

  • https://selenium-python.readthedocs.io/index.html
  • https://seleniumhq.github.io/selenium/docs/api/py/api.html

webdriver工作原理
通过浏览器的driver与浏览器进行通信.(传令兵,把我们的指令通过webdriver传递给浏览器,同时把浏览器的返回结果进行定位、操作、获取属性信息等)

配置环境
pip install selenium
下载webdriver(与浏览器的种类和版本匹配)
Chrome:http://chromedriver.storage.googleapis.com/index.html
Firefox:https://github.com/mozilla/geckodriver/releases/
下载好后解压
1.放置到python的安装目录
2.放置在项目中的专门目录
在这里插入图片描述

使用selenium

进入网址,进入到网站后显示5秒钟,5秒之后关闭浏览器

# 想操作浏览器导入webdriver的包就可以,不用导入selenium中所有的包
from selenium import webdriver
from time import sleep

# 初始化一个driver(要加括号)
driver = webdriver.Chrome()
# 访问乐博商城的网址
driver.get("http://shop.pro.17lebo.com")

#这时我就可以控制浏览器了,能控制浏览器就可以操纵要测试的软件了
#……

# 沉睡5秒钟 
sleep(5)
# 退出当前标签页
# driver.close()
# 退出整个浏览器  不关闭浏览器,浏览器会越来越多
driver.quit()

在这里插入图片描述
webdriver的功能

  1. 能访问浏览器
  2. 能设置浏览器的窗口大小 无界面时也有效
# 最大化
driver.maximize_window()
# 最小化
driver.minimize_window()
# 设置窗口大小
driver.set_window_size(800, 600)
  1. 控制前进、后退
from selenium import webdriver
from time import sleep

# 初始化一个driver(要加括号)
driver = webdriver.Chrome()
# 访问乐博商城的网址
driver.get("http://shop.pro.17lebo.com")

# 设置浏览器的大小
# 最大化
driver.maximize_window()
# 控制前进。后退
# 打开乐博官网
driver.get("http://www.17lebo.com")
sleep(3)
# 后退  去上一个页面
driver.back()
sleep(3)

# 前进  去下一个页面
driver.forward()
sleep(3)
  1. 截图
# 浏览器截图
driver.get_screenshot_as_file("浏览器截图3.png")

在这里插入图片描述

  1. 刷新页面
# 刷新页面
driver.refresh()
  1. 关闭浏览器
driver.quit()
  1. 关闭当前页面
driver,close()
  1. 获取页面属性

在这里插入图片描述
浏览器的无界面操作
每次运行的时候都会出现浏览器,有的时候不想让浏览器出现,就用到无界面操作
无界面模式下默认不是全屏,默认大小是800*600

# 浏览器的无界面操作
# 用来保存各种webdriver的配置项
opt = webdriver.ChromeOptions()
opt.headless = True
# 初始化一个driver(要加括号)
driver = webdriver.Chrome(options=opt)

Selenium定位页面元素

UI自动化测试,从定位页面元素开始
8大定位方法

  1. id
  2. name
  3. class name:class的名
  4. tag name:标签名
  5. link text:链接的文字内容
  6. partial link text:这个link text包含的一部分内容
  7. xpath
  8. css selector

find_element()和find_elements()

name定位

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值