Selenium自动化测试快速入门指南

发布于:2025-08-31 ⋅ 阅读:(18) ⋅ 点赞:(0)

1.Selenium快速入门

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

三个组件:

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

Selenium特点:

  • 1.行业标准:WebDriver成为W3C标准
  • 2.兼容性强:
    • 1.支持多语言:python,java,c#,ruby
    • 2.支持多浏览器:chrome,firefox,edge,safari
    • 3.支持多环境:windows,macos,linux
  • 3.生态比较成熟:
    • 1.书籍,视频
    • 2.Appium(APP自动化测试)
    • 3.pytest

2.Selenium环境搭建

        1、安装Python IDE集成开发工具  PyCharm 

        2、在PyCharm Terminal终端命令行输入:pip install selenium    安装Selenium

 pip install selenium

2.1.Python+Selenium 环境验证,浏览器打开百度搜索

from selenium import webdriver
from selenium.webdriver.edge.service import Service

# 指定驱动路径
service = Service(executable_path=r'C:\Program Files\edgedriver\MicrosoftWebDriver.exe')

#添加detach选项防止浏览器闪退
options = webdriver.EdgeOptions()
options.add_experimental_option("detach", True)
# driver = webdriver.Edge(options=options)

#通过ChromeOptions添加-kiosk参数实现类似F11的全屏效果
# options.add_argument('-kiosk')

#初使化浏览器
driver = webdriver.Edge(options=options,service=service)
driver.get("https://www.baidu.com")

driver.maximize_window()                    #可使浏览器窗口最大化但不覆盖系统任务栏
# driver.set_window_size(300, 300)          #可指定像素级尺寸
# driver.fullscreen_window()                #Edge浏览器专用配置

#退出
# driver.quit()

2.2.环境验证失败的原因

  1. 没有安装浏览器edge,chrome,ie等
  2. 没有浏览器驱动msedgedriver.exe,chromedriver.exe等
  3. 浏览器版本与浏览器驱动版本不一致

3.Selenium应用示例

  • 一般操作:访问、点击、输入
  • 上下滚动
  • 左右切换
  • 大小缩放(兼容性问题)

4.两大对象

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

        浏览器(交互)、元素(交互)

  • WebDriver:浏览器操作
    • 页面跳转
    • 大小调整
    • 截图
    • 滚动窗口
    • 切换窗口
    • 获取网页标题、内容、网址
  • WebElemen:元素操作
    • 输入
    • 点击
    • 截图
    • 获取内容、大小、位置

5.八种定位

    ID = "id"
    XPATH = "xpath"
    LINK_TEXT = "link text"
    PARTIAL_LINK_TEXT = "partial link text"
    NAME = "name"
    TAG_NAME = "tag name"
    CLASS_NAME = "class name"
    CSS_SELECTOR = "css selector"
  1. 针对链接
    • LINK_TEXT
    • PARTIAL_LINK_TEXT
  2. 针对元素属性
    • ID
    • NAME
    • TAG_NAME
    • CLASS_NAME
  3. 万能方法
    • CSS_SELECTOR
    • XPATH

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

6.三大等待

场景:等待元素加载完成

  • 强制等待 :
    time.sleep(3)
  • 隐式等待:
    driver = webdriver.Edge(options=options, service=service)
    driver.implicitly_wait(20)   #隐式等待(最大等待时间20s)    放在浏览器启动之后,等待浏览器加载完成
  • 显示等待:
    wait=WebDriverWait(driver, 10)
    wait.until(lambda d: 1==1)   #等待条件

7.和pytest集成

安装 pytest-selenium   插件


(.venv) PS C:\Users\batytao\PycharmProjects\PythonProject> pip install pytest-selenium

执行测试用例

(.venv) PS C:\Users\batytao\PycharmProjects\PythonProject> pytest --driver Edge -- html1 report.html

8.测试框架封装

        POM 页面对象模型


网站公告

今日签到

点亮在社区的每一天
去签到