python+selenium web自动化测试开发入门案例

本文介绍自动化测试的重要性,通过减少重复劳动提高工作效率,并详细讲解了使用Python的Selenium库进行自动化测试的具体步骤,包括模拟浏览器访问、获取及操作页面元素等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

为什么要用自动化测试?

  1. 软件测试中重复的用例点了一遍又一遍,耗费开发小伙伴大量的时间和精力
  2. 白盒测试中可能由于某些操作上的疏忽导致本应该失败的用例通过了
  3. 自动化测试时间短效率高,大部分时间只会投入到前期的开发工作中,后期基本没有太大的时间成本
  4. 打开这个页面,打开那个页面,点这个点那个,有这时间,来把王者不香吗?再不行看看抖音,紧跟一下潮流也行啊~(开个玩笑 ^ _ ^)

自动化测试逻辑

  1. 模拟web浏览器访问
  2. 获取页面元素
  3. 对页面元素进行操作
  4. 对返回结果进行验证
  1. 当我们获取元素是常常会遇到请求发送但是元素还未加载的情况,这时候就需要进行等待,分为显示等待和隐式等待
  2. 当我们使用XPATH定位元素的时候,XPATH的语法需要构建,这时候可以使用浏览器自带的debug工具进行元素的XPATH完整路径拷贝基本上可以解决大部分的元素定位问题了

需要安装的三方库

# 管理 web 驱动
pip install webdriver-manager
# 模拟测试
pip install selenium

实例代码

from selenium import webdriver
from selenium.webdriver.common.by import By
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.support.wait import WebDriverWait


def test_eight_components():
    # 从环境变量加载谷歌驱动
    driver = webdriver.Chrome(executable_path=ChromeDriverManager().install())
    # 访问 html 页面
    driver.get("https://www.selenium.dev/selenium/web/web-form.html")
    # 获取目前页面的标题
    title = driver.title
    assert title == "Web form"
    # 设置隐式等待事件为 0.5 秒:即当元素未出现在Dom树中,等待0.5秒后再查找元素,作用域为整个 Webdriver 的生命周期
    driver.implicitly_wait(0.5)
    # 通过 name 属性获取元素
    text_box = driver.find_element(by=By.NAME, value="my-text")
    # 通过 xpath 路径获取元素
    check_box = driver.find_element(by=By.XPATH, value="/html/body/main/div/form/div/div[2]/div[1]/label[2]")
    # 单击元素
    check_box.click()
    # 通过 css 选择器获取元素
    submit_button = driver.find_element(by=By.CSS_SELECTOR, value="button")
    # 模拟输入到元素中
    text_box.send_keys("Selenium")
    # 单击元素
    submit_button.click()
    # 循环通过 ID 查找元素,直到元素被加载,如果事件超过 30 秒,则显示超时
    message = WebDriverWait(driver, timeout=30).until(lambda d: d.find_element(by=By.ID, value="message"))
    # 获取元素的 text 文本
    value = message.text
    # 对结果进行断言验证
    assert value == "Receive!"
    # 退出会话
    driver.quit()

# 调用函数
test_eight_components()

参考网站

  • https://www.selenium.dev/zh-cn/documentation/webdriver/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值