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日

相关文章

  • QT实战之打开最近文档功能的实现

    当我们在使用软件过程中,需要频繁地打开一些文档文件,对于经常使用的那些文档,我们有时候需要一种快捷的方式来定位和打开它们,这时候一个最近文档的列表就非常有用了。 在QT中实现最近文档功能其实非常简单,我们可以通过QSettings和QListWidget配合来实现这一功能。 1.首先我们需要在QT的菜单栏中添加最近文档的选项,例如添加一个“最近打开”的下拉菜…

    other 2023年6月26日
    00
  • 太吾绘卷更新后卡顿怎么办 更新后卡顿原因及解决方法介绍

    太吾绘卷更新后卡顿怎么办? 如果你在新的太吾绘卷更新后游戏出现了卡顿,可能是由于以下原因: 系统配置不足; 游戏设置过高; 游戏更新时出现了异常; 游戏文件损坏; 电脑中存在病毒或恶意软件。 接下来详细介绍解决方法: 方法一:检查系统配置 首先检查一下你的电脑是否满足游戏的要求。太吾绘卷官方要求电脑的系统为Windows 7以上,需要内存4GB及以上。如果你…

    other 2023年6月27日
    00
  • 玩转smartqq之登录

    以下是关于“玩转smartqq之登录”的完整攻略,包括登录过程、示例说明等。 1. 登录过程 smartqq是一款基于WebQQ协议的第三方QQ客户端,可以在Linux、Mac OS X、Windows等多个平台上使用。以下是smartqq登录的完整攻略: 获取二维码:打开smartqq客户端,点击“登录”按钮,获取二维码。 扫描二维码:使用手机QQ或其他支…

    other 2023年5月7日
    00
  • python-如何使用pipfile和pipfile.lock?

    Python – 如何使用Pipfile和Pipfile.lock? Pipfile和Pipfile.lock是Python项目中的依赖管理工具,可以帮助我们更好地管理项目依赖。本文将介如何使用Pipfile和Pfile.lock。 1. 安装Pipenv 在使用Pipfile和Pipfile.lock之前,我们需要先装Pipenv。在命令行中执行以下命令即…

    other 2023年5月8日
    00
  • C#实现DataList里面嵌套DataList的折叠菜单

    C#实现DataList里面嵌套DataList的折叠菜单攻略 1. 准备工作 在开始实现之前,确保你已经安装了适当的开发环境,比如Visual Studio,并且已经创建了一个C#项目。 2. 创建数据模型 首先,我们需要创建一个数据模型来表示菜单项。假设我们的菜单项有以下属性:Id、Name、ParentId和Children。Id是菜单项的唯一标识符,…

    other 2023年7月28日
    00
  • CrystalDiskMark测试硬盘使用? CrystalDiskMark数据查看方法

    当我们想要测试硬盘的性能时,CrystalDiskMark是一个常用的工具。下面是使用CrystalDiskMark测试硬盘的完整攻略,并包含两个示例说明: 步骤一:下载和安装CrystalDiskMark 首先,您需要从CrystalDiskMark官方网站(https://crystalmark.info/en/software/crystaldiskm…

    other 2023年10月17日
    00
  • 电脑硬盘里的program files文件夹是什么意思

    电脑硬盘里的“program files”文件夹指的是安装在Windows操作系统上的应用程序和软件的主要目录,一般安装程序将软件安装到该目录下,同时该目录也是Windows操作系统中的受保护文件夹。 一般情况下,Windows操作系统在C盘下会默认创建一个名为“Program Files”的文件夹,主要用于存放已安装的软件和应用程序。这个文件夹的主要作用是…

    other 2023年6月27日
    00
  • 如何修复快捷方式lnk文件的打开方式

    如何修复快捷方式(.lnk)文件的打开方式 快捷方式(.lnk)文件是指向其他文件或文件夹的快速访问链接。如果你的快捷方式文件的打开方式出现问题,可能会导致无法正常打开目标文件或文件夹。下面是修复快捷方式文件打开方式的完整攻略: 步骤一:重置文件关联 打开“控制面板”。 在控制面板中,选择“默认程序”。 点击“关联一个文件类型或协议与特定的程序”。 在文件类…

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