首页 > 其他分享 >SeleniumBase 利用数据驱动 方式运行-使用笔记(五)

SeleniumBase 利用数据驱动 方式运行-使用笔记(五)

时间:2024-09-05 10:50:20浏览次数:11  
标签:username 笔记 user sb 驱动 password type SeleniumBase

自动化福音(爬虫、办公、测试等) SeleniumBase 使用笔记(五)

SeleniumBase 利用数据驱动 方式运行

有同学问我,如何对 SeleniumBase 使用数据驱动 见评论区,于是有了这个文章。

目录

  1. SeleniumBase继承方式
  2. SeleniumBase夹具方式

继承方式

这种方式的使用,前提是你的代码使用的继承BaseCase类的方式编写的,此时需要用parameterized.expand来装饰,而不能用pytest.mark.parametrize,具体如下:

#!/usr/bin/env python3
# -*- coding: UTF-8 -*-
"""
@ File        : test.py
@ Author      : yqbao
@ Version     : V1.0.0
@ Description : 数据驱动
"""
from parameterized import parameterized
from seleniumbase import BaseCase

BaseCase.main(__name__, __file__)


class TestParameterized(BaseCase):
    @parameterized.expand(
        [
            ['standard_user', 'secret_sauce'],
            ['locked_out_user', 'secret_sauce']
        ]
    )
    # 按照顺序解析到对应的参数中
    def test_parameterized_login(self, username, password): 
        self.open("https://www.saucedemo.com")
        self.type("#user-name", username)
        self.type("#password", password)
        self.click('input[type="submit"]')

夹具方式

这种方式的使用,可以兼容pytest.mark.parametrize装饰方法,因为SeleniumBase夹具的使用方式有两种,所以这里也就有两种驱动方式,具体如下:

#!/usr/bin/env python3
# -*- coding: UTF-8 -*-
"""
@ File        : test.py
@ Author      : yqbao
@ Version     : V1.0.0
@ Description : 数据驱动
"""
import pytest


# 没有类时,直接使用
@pytest.mark.parametrize('username,password', [
    ('standard_user', 'secret_sauce'),
    ('locked_out_user', 'secret_sauce')
])
def test_sb_fixture_with_no_class(sb, username, password):
    sb.open("https://www.saucedemo.com")
    sb.type("#user-name", username)
    sb.type("#password", password)
    sb.click('input[type="submit"]')


# 有类时,应用于类中
class TestSBFixtureParameterized:
    @pytest.mark.parametrize('username,password', [
        ('standard_user', 'secret_sauce'),
        ('locked_out_user', 'secret_sauce')
    ])
    def test_sb_fixture_parameterized_login(self, sb, username, password):
        sb.open("https://www.saucedemo.com")
        sb.type("#user-name", username)
        sb.type("#password", password)
        sb.click('input[type="submit"]')

GitHub SeleniumBase
本文章的原文地址
GitHub主页

标签:username,笔记,user,sb,驱动,password,type,SeleniumBase
From: https://www.cnblogs.com/yqbaowo/p/18397806

相关文章

  • 2024/9/4黑马头条跟学笔记(二)
    app端文章列表学习内容需求分析上方分类频道切换布局,无图,单图,三张图文章数据库表导入文章数据库结构分析配置-文章一对一,拆表,冷热数据分离满足范式表的拆分-垂直分表优势查文章信息不会连带查询文章内容将longtext字段拆除去,高频查询提高性能拆分规则不......
  • PPT讲解伺服电机及其驱动技术
    ......
  • 【Python学习笔记】 第2章 Python如何运行程序
    Python解释器简介我们在Python的官网下载并安装Python后,它会生成一些组件,包括解释器和一套支持库。Python的代码必须在解释器中运行。程序运行程序员的视角一个Python程序仅是一个包含Python语句的文本文件。例:创建script0.py文件,并写上:print("Hello,world!")print(2**1......
  • 尚硅谷前端 ES6 笔记
    ECMAScript6-11概述1.ECMA介绍ECMA(EuropeanComputerManufacturersAssociation)是欧洲计算机制造商协会,目标是评估、开发和认可电信和计算机标准。1994年后改名为Ecma国际。2.ECMAScript是什么ECMAScript是由Ecma国际通过ECMA-262标准化的脚本程序设计语言。3.......
  • gadget驱动框架(一)
    之前在linux移植udc驱动的时候,没有深入的理解整个gadget驱动框架,现在重新再屡屡gadget驱动,以便后期再次学习。本系列的文章以虚拟串口进行分析,相关源码均是基于linux4.19.123。gadget驱动框架gadget源码主要在:drivers/usb/gadget,以虚拟串口为例,对源文件做简单说明:drivers/usb/g......
  • 代码整洁之道--读书笔记(1)
    代码整洁之道简介:本书是编程大师“Bob大叔”40余年编程生涯的心得体会的总结,讲解要成为真正专业的程序员需要具备什么样的态度,需要遵循什么样的原则,需要采取什么样的行动。作者以自己以及身边的同事走过的弯路、犯过的错误为例,意在为后来者引路,助其职业生涯迈上更高台阶。本......
  • 最小斯坦纳树 学习笔记
    最小斯坦纳树给定一张无相连通图,每条边有权值,有\(k\)个关键点,要求选择权值和最小的边使得关键点连通,求权值和。类似最小生成树,但是限定了关键点就只能用指数级的复杂度解决,这里考虑类似状压DP的方法。例题:P6192【模板】最小斯坦纳树首先最终答案显然是一个树。所以我们......
  • 笔记-Neovim快速入门
    本文是neovim中的练习项目Tutor的笔记。建议自己手动尝试一下这个项目,很快就能上手neovim。想要尝试这个项目,只要输入:Tutor<Enter>即可。安装&启动使用包管理器apt安装即可。运行:$sudoaptinstallneovimTutorLesson1移动光标使用hjkl键可以移动光标,方向如下所......
  • PPPoE配置学习笔记
    企业内网和运营商网络如上图所示,中间交换机模拟运营商传输设备。公网IP段:12.1.1.0/24。内网IP段:192.168.1.0/24。PPPoE拨号采用CHAP认证,用户名:admin密码:admin@123实验要求:将R1设置为PPPoE客户端,R2为PPPoE服务器端;R1作为内网用户的网关,内网用户自动获取IP地址;R1上的拨号接......
  • A-LLMRec论文阅读笔记
    LargeLanguageModelsmeetCollaborativeFiltering:AnEfficientAll-roundLLM-basedRecommenderSystem论文阅读笔记Abstract现存的问题:​ 最近的策略侧重于利用基于预训练模态编码器和大型语言模型(LLM)的用户/项目模态信息(如文本或图像)。尽管它们在冷场景下非常有效,但我......