首页 > 其他分享 >【selenium】自动化测试小白入门:实现只开一个窗口,不同用户循环登录

【selenium】自动化测试小白入门:实现只开一个窗口,不同用户循环登录

时间:2024-07-25 16:24:44浏览次数:16  
标签:入门 selenium driver testcase pytest login 只开 def name

首先,我在给一个审批流写自动化脚本,需要各个不同的人登录去点通过按钮,每个人的流程都一致,唯一的区别就是user不同。

那么,我的实现目标是,不关闭browser,只写一个testcase,实现不同用户按顺序运行同一个testcase

第一次尝试,在driver里面写login

@pytest.fixture(scope="session")   # conftest文件
def driver(request):
    global driver
    name = request.param
    driver = webdriver.Chrome()
    driver.maximize_window()
    login = Login(driver)
    login.geturl(config.url)
    login.input_username_password(name, config.password)  #已经写好的登录步骤
    yield driver
    driver.quit()
    return driver

testcase中用driver这么用

@pytest.mark.parametrize('driver',['user1','user2'],indirect=True)
def test_01(driver):
	menu = menu(driver)  # 这行只是为了测试能不能正常打开和登录

这样写勉强能实现最终效果,但过程由于运行太慢我不喜欢。每次testcase运行完之后,浏览器会直接quit,然后隔很久再打开一个browser

然后!我想既然每次testcase运行都会被driver影响到,那我只要把login从driver里单独抽出来写,是不是就能实现

第二版,conftest中driver和login分开写

@pytest.fixture(scope="session")   # conftest文件
def driver():   
    global driver
    driver = webdriver.Chrome()
    driver.maximize_window()
    yield driver
    driver.quit()
    return driver

@pytest.fixture()
def login(request, driver):
    name = request.param
    login = Login(driver)
    login.geturl(config.url)
    login.input_username_password(name, config.password)  #已经写好的登录步骤
    return name

testcase中用driver和login这么用

@pytest.mark.parametrize('login', ['user1','user2'], indirect=True)
def test_01(driver, login):
	menu = menu(driver)  # 这行只是为了测试能不能正常打开和登录

成功!

标签:入门,selenium,driver,testcase,pytest,login,只开,def,name
From: https://blog.csdn.net/m0_46316883/article/details/140691632

相关文章

  • 程序设计:C++入门教程(速成) + 15道经典例题(附带例题解析)
    本文章以实用为主,若实在是不明白文字所表达的内容,无脑复制代码,自己动手运行一下,实验一下即可理解文章内容,放心,代码是全的,全选复制粘贴即可不废话,直接开整数据类型常用数据类型int:整数类型,用于表示整数值。例如:1,2,-3,0等。float:单精度浮点数类型,用于表示带有小数点的数......
  • Linux入门---(三)Shell编程
    1.脚本格式:#!/bin/bash开头2.脚本执行方式采用bash或sh+脚本的相对路径或绝对路径采用输入脚本的绝对路径或相对路径执行脚本,如./hello.sh在脚本的路径前加上“.”或source(父shell)3.变量系统预定义变量:$HOME,$PWD,$SHELL,$USER等自定义变量:变量名=变量值,如my_var=hello......
  • Vue入门
    VueisapopularJavaScriptframeworkforbuildinguserinterfaces.Itisoftenusedforcreatingsingle-pageapplicationsandisknownforitssimplicityandflexibility.Vueallowsdeveloperstoorganizetheircodeintoreusablecomponents,makingitea......
  • 转行网络安全,应该选哪个方向?(非常详细)零基础入门到精通,收藏这一篇就够了
    随着互联网技术的快速发展和广泛应用,网络安全形势日益严峻,各种网络攻击和安全威胁不断涌现,给个人、企业乃至国家带来了巨大的风险。为了应对网络风险,网络安全越来越被重视,开始成为入行互联网的备选岗位。网络安全方向众多,涉及到网络安全生命全周期,方向多达几十种。网络安......
  • Java入门:05.Java中的数组002
    通过上篇文章,相信大家对数组应该有了一个简单的了解,并对Java中的数据类型有了一个基本的认识,不仅如此我们还明白了怎样定义一个数组类型的变量,在这之后,让我们一起来更加深入的了解一下数组吧。三、如何创建一个数组(对其初始化)上篇文章我们明白了怎样定义一个数组类型的变量,但......
  • 入门Vue+.NET 8 Web Api记录(一)
    做自己感觉有意思的或者能解决自己需求的项目作为入门,我觉得是有帮助的,不会觉得那么无聊。一个最简单的前后端分离项目应该是怎么样的?我觉得就是前端有个按钮,点击向后端发送一个get请求,获取到数据后,将数据显示在前端上。结合最近感兴趣的SemanticKernel,有了做这样的Demo学习的......
  • Python - Selenium抓取淘宝直播间评论(可使用无头模式)
    Python-Selenium抓取淘宝直播间评论(可使用无头模式)下面介绍如何使用python中的selenium简单抓取淘宝直播间实时评论。友情提醒,仅供学习交流使用,请勿用于非法用途!一、创建python项目1.在目录下新建main.py和venv虚拟环境:创建虚拟环境:python-mvenvvenv激活虚拟环......
  • 代码随想录算法训练营第42天 | 动态规划7:打家劫舍入门
    打家劫舍https://leetcode.cn/problems/house-robber/description/代码随想录https://programmercarl.com/0198.打家劫舍.html打家劫舍-环形https://leetcode.cn/problems/house-robber-ii/description/代码随想录https://programmercarl.com/0213.打家劫舍II.html#思路......
  • Windows下cmake入门教程-利用cmake创建Visual Studio工程
    希望我们不仅把编程当成一份工作,更要将其当成一份热爱!!!                                                                 -----潜意......
  • selenium.webdriver.Firefox 与 FirefoxOptions().add_argument('--headless') 不返回
    我注意到Firefox中的无头选项会在后台运行Firefox,而不会附加任何窗口,而且我还没有找到一种方法可以在后台运行Firefox,同时仍保留Firefox窗口的hwnd能够使用。我开始使用pyvda来获取AppViewFirefox,但是pyvda.get_apps_by_z_order没有返回任......