python playwright–pytest-playwright、pytest-base-url插件编写用例

Python Playwright是一个Python库,用于控制Chrome、Firefox和WebKit(Safari)的自动化测试。而pytest-playwright和pytest-base-url是基于Python Playwright的两个插件,前者用于在pytest中集成Playwright测试框架,后者用于设置pytest的默认基础URL。

以下是编写用例的完整攻略:

1. 安装Python Playwright及其插件

pip install -U playwright pytest-playwright pytest-base-url

2. 创建pytest fixtures

编写步骤如下:

  1. 新建一个名为conftest.py的文件,并放置在pytest根目录下;
  2. 编写browser_typebrowser的fixture函数,如下:
import pytest
from playwright.sync_api import Playwright, BrowserType, Browser

@pytest.fixture(scope="session")
def browser_type() -> BrowserType:
    with Playwright() as playwright:
        # 设置可选的浏览器,支持Chromium、Firefox、WebKit(Safari)
        browser_type = playwright.chromium if "pytest_playwright_chromium" in pytest.config.option.browser else playwright.firefox
        yield browser_type

@pytest.fixture
def browser(browser_type: BrowserType) -> Browser:
    # 启动浏览器,完成测试时自动关闭浏览器并清理痕迹
    with browser_type.launch(headless=True) as browser:
        yield browser
  1. 添加browser_typebrowserpytest.fixture装饰器中,比如:
def test_example(browser_type: BrowserType, browser: Browser):
    ...

3. 编写测试用例

编写示例代码如下:

# test_google_search.py

from playwright.sync_api import Page

def test_google_search(base_url: str, page: Page):
    page.goto(base_url)
    page.type('input[name="q"]', "pytest")
    page.press('input[name="q"]', "Enter")
    assert "pytest" in page.title()

在该示例中,我们调用了page.goto方法访问基础URL,然后在搜索栏输入pytest,最后按Enter键。最后,我们检查当前页面是否包含标题pytest。

4. 设置基础URL

conftest.py文件中定义baseurl。比如:

@pytest.fixture
def base_url() -> Optional[str]:
    return 'https://www.google.com'

在example测试中,我们可以直接使用该base_url:

def test_example(base_url, page):
    page.goto(f'{base_url}/search?q=pytest')
    assert "pytest" in page.title()

这样我们就完成了以上两部分示例代码。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python playwright–pytest-playwright、pytest-base-url插件编写用例 - Python技术站

(0)
上一篇 2023年6月27日
下一篇 2023年6月27日

相关文章

  • iDempiere 使用指南 绿色版一键启动测试环境

    iDempiere是一款开源的企业资源计划(ERP)软件,它提供了一系列的业务功能,包括财务、采购、销售、库存等。本文将介绍如何使用iDempiere的绿色版一键启动测试环境,包括下载、安装、配置等。 下载iDempiere绿色版 iDempiere绿色版是一个预先配置好的iDempiere测试环境,可以快速启动和测试iDempiere。可以从iDempie…

    other 2023年5月5日
    00
  • Intellij IDEA如何修改配置文件位置

    当我们在使用IntelliJ IDEA开发项目时,可能需要修改一些配置文件的位置,以便更好地适应项目的需求。下面就来详细讲解如何修改IntelliJ IDEA的配置文件位置。 1. 修改配置文件位置的前提条件 在修改IntelliJ IDEA的配置文件位置前,需要确保已经安装好了IntelliJ IDEA,并且熟悉基本的使用方法。同时,需要对配置文件的内容和…

    other 2023年6月25日
    00
  • C语言双指针多方法旋转数组解题LeetCode

    关于“C语言双指针多方法旋转数组解题LeetCode”的攻略如下: 问题描述 给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。 解题思路 考虑使用双指针的方法进行旋转。首先,指定一个指针 $L$ 指向数组的最左侧,再指定一个指针 $R$ 指向从最右端起第 $k$ 个位置。接着,利用双指针交换数组元素,即将 $L$ 指向的元素和 $R$ …

    other 2023年6月25日
    00
  • 魔兽世界wlk怀旧服兽王猎堆什么属性 兽王猎属性优先级选择推荐

    魔兽世界wlk怀旧服兽王猎堆什么属性 在魔兽世界wlk怀旧服中,兽王猎是一个非常强大的职业之一。在装备选择方面,合理的选择属性可以让兽王猎变得更加强大。下面我们将为大家详细讲解兽王猎堆什么属性以及属性的优先级选择推荐。 属性选择 兽王猎需要关注的属性主要有以下几点: 1. 敏捷 敏捷是兽王猎最为重要的属性,因为它可以提高攻击强度和暴击几率。在装备选择时,需要…

    other 2023年6月27日
    00
  • JavaScript知识:构造函数也是函数

    JavaScript知识:构造函数也是函数 什么是构造函数 构造函数是一种特殊的函数,用于创建并初始化一个对象。在 JavaScript 中,构造函数是通过定义一个以大写字母开头的函数名称来定义的,而不是通过特殊的语法结构来定义。 在构造函数中,常用的方式是通过 this 关键字来引用当前正在创建的对象,并设置其属性/方法。构造函数定义的属性和方法可以被所有…

    other 2023年6月27日
    00
  • 跟我学Makefile(二)

    跟我学Makefile(二) 在上一篇跟我学Makefile中,我们学习了一些基础的Makefile语法和命令。在本文中,我们将继续深入了解如何使用Makefile自动化构建我们的代码。 变量 Makefile支持定义变量,可以提高代码的复用性和可维护性。变量可以用于定义命令、文件列表等。 变量的定义格式是变量名 = 值。例如: CC = gcc CFLAG…

    其他 2023年3月28日
    00
  • 不一样的WIN2003服务器安全配置技巧

    不一样的WIN2003服务器安全配置技巧 介绍 本文将介绍 WIN2003 服务器安全配置的一些不同于常规的技巧,包括一些安全性高、易于管理及遵守最佳实践的方法。 一、开启远程桌面服务 开启远程桌面服务可以让用户通过网络远程访问服务器,方便远程管理。虽然这是一个常规配置,但有几个小技巧可以提高服务器安全性。 1.1 修改默认端口 远程桌面服务默认使用 338…

    other 2023年6月27日
    00
  • Android 图片切换器(dp、sp、px) 的单位转换器

    Android 图片切换器(dp、sp、px)的单位转换器攻略 在Android开发中,我们经常需要在不同的屏幕尺寸和像素密度下进行图片切换。为了适应不同的设备,我们需要使用不同的单位来定义图片的尺寸。在Android中,常用的单位有dp(density-independent pixels)、sp(scaled pixels)和px(pixels)。下面是…

    other 2023年9月5日
    00
合作推广
合作推广
分享本页
返回顶部