PandHedge

Selenium

2025-09-13
PandHedge

【web自动化】Selenium快速入门

selenium 是一个开源的Web自动化工具,一般用于测试、爬虫、刷票等场景

三个组件:

  • Selenium IDE:浏览器插件,生成测试脚本(脚本录制),4年前停止更新
  • Selenium WebDriver:让代码控制浏览器模拟用户操作,自动化测试必备组件
  • Selenium Grid:分布式拓展,让自动化脚本在多个机器上运行

特点:

1.行业标准:WebDriver成为W3C标准

2.兼容性强:

​ 1.支持多语言

​ 2.支持多浏览器

​ 3.支持多环境

3,生态比较成熟

​ 1,书籍、视频

​ 2,Appium(App自动化测试)

​ 3.pytest

2.Selenium环境搭建

假设有python环境

pip3 install selenium
from selenium import webdriver

driver = webdriber.Chrome() # webdriver

driver.get("url") # 控制

driver.quit() # 关闭

结果:

  • 没有报错
  • 报错:
    • 找不到浏览器
    • 找不到浏览器驱动

3.Selenium 应用示例

能够做什么:

  • 点击
  • 滚动
  • 左右切换
  • 大小缩放(兼容性问题)

4.两个对象:

浏览器交互 元素交互

对象:面向对象

Selenium最开始使用Java开发,几乎所有的用法都是面向对象

  • WebDriber:浏览器
    • 页面跳转
    • 大小调整
    • 截图
    • 滚动窗口
    • 切换窗口
    • 获取网页标题、
  • WebElement:元素的操作
from selenium import webdriver
# 语法:实例化
driver = webdriver.Chrome() # 启动

# 语法:调用实例化方法
driver.get("url") # 控制

# 语法: 访问实例化属性
print(driver.tittle)

driver.quit() # 关闭

5.八钟定位:

image-20250812093832243

class By:
ID
NAME
CLASS_NAME
TAG_NAME
LINK_TEXT
PARTIAL_LINK_TEXT
XPATH
CSS_SELECTOR

1.针对链接:

  • LINK_TEXT
  • PARTIAL_LINK_TEXT

2.针对元素属性

  • ID
  • NAME
  • CLASS_NAME
  • TAG_NAME

3.万能方法

  • XPATH
  • CSS_SELECTOR

同一个元素,可以使用不同的方式进行定位

6.三大等待

image-20250812093902479

经典场景:等元素加载完成

  • 强制等待:time.slepp()
  • 隐式等待:driver.implicitly_wait() #启动时设置
  • 显示等待
WebDriverWait(driver,timeout:20)

定位策略 值

7.和pytest 集成

pytest --driver chrome --html report.html
pip3 install pytest-selenium

结果 日志 截图

8.测试框架封装

  • POM页面对象模型
  • KDT关键字驱动测试

POM=PageObjectMODEL

  • 使用类,代表页面
  • 使用类中的属性,代表页面的元素
  • 使用类中的方法,代表页面的操作

抽象父类 BasePage

class BasePage
def test_login(selenium)
	page = LoginPage(selenium)  #实例化PO
    

Similar Posts

上一篇 RobotFramework

下一篇 UWP

Comments