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

yizhihongxing

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日

相关文章

  • 电脑如何查看上次重启时间? windows查看上一次开机时间的三种方法

    下面是电脑如何查看上次重启时间以及Windows查看上一次开机时间的三种方法的攻略: 1. 使用命令行方式查看上次重启时间 使用命令行方式是最为实用和便捷的查看电脑上次重启时间的方法,该方法适用于所有Windows系统。具体操作步骤如下: 步骤1: 打开命令行窗口。点击开始菜单,输入“CMD”或者“命令行”等关键字,选择“命令提示符”打开。 步骤2: 输入命…

    other 2023年6月26日
    00
  • .Net使用XtraGrid控件绑定数据

    以下是详细讲解“.Net使用XtraGrid控件绑定数据”的完整攻略: 1. 准备工作 首先,要准备好以下内容: 开发环境:Visual Studio 2015及以上版本。 DevExpress控件库:下载并安装最新版本的DevExpress控件库。 数据源:准备好需要绑定的数据源。 2. 添加XtraGrid控件 在Visual Studio项目中,通过D…

    other 2023年6月26日
    00
  • intel的mkl是可以用来训练的—的实验也提到了训练

    Intel的MKL是可以用来训练的——的实验也提到了训练 在深度学习中,训练模型是一个非常耗费计算资源的过程。因此,针对不同的硬件和软件环境,选取一个高效的训练工具非常关键。而Intel Math Kernel Library (MKL)作为一个高效的数学库,在训练中也扮演着重要的角色。 实验也证实了这一点。在“ImageNet Large Scale Vi…

    其他 2023年3月28日
    00
  • iOS 14.2/iPadOS14.2 Beta4值得升级吗?iOS 14.2/iPadOS14.2 Beta4更新详解

    iOS 14.2/iPadOS 14.2 Beta 4 值得升级吗? 简介 iOS 14.2/iPadOS 14.2 Beta 4 是苹果公司最新发布的测试版本,旨在为iPhone和iPad用户提供更好的使用体验。在决定是否升级之前,我们需要考虑以下几个因素。 新功能和改进 iOS 14.2/iPadOS 14.2 Beta 4 带来了一些新功能和改进,这些…

    other 2023年7月27日
    00
  • MySQL表的重命名字段添加及字段属性修改操作语法

    当需要对MySQL中的表进行重命名字段、添加字段或者修改字段属性的时候,可以使用以下语法: 重命名字段 ALTER TABLE 表名 RENAME COLUMN 旧字段名 TO 新字段名; 示例1:将表“students”中的字段“age”改为“years”。 ALTER TABLE students RENAME COLUMN age TO years; …

    other 2023年6月25日
    00
  • 从头学习C语言之指针和数组

    标题:从头学习C语言之指针和数组 什么是指针? 在C语言中,指针是一个非常重要的概念。指针可以理解为一个变量的地址,通过操作这个地址,我们可以操作这个变量。声明一个指针的方式为:类型 *指针变量名,其中类型是指针指向的数据类型,*用来表示指针类型,指针变量名则是自己取的一个名字。 以下是一个简单的示例: #include <stdio.h> in…

    other 2023年6月25日
    00
  • centos7host文件

    以下是关于“CentOS 7 Hosts文件”的完整攻略: 步骤1:打开Hosts文件 在CentOS 7系统中,Hosts文件位于/etc/hosts路径。可以使用以下命令打开Hosts文件: sudo vi /etc/hosts“` 上面的命令将使用vi编辑器打开Host文件。 ## 步骤2:添加主机名和地址 在Hosts文件中,可以添加主机名和IP地…

    other 2023年5月7日
    00
  • intellijidea2018激活

    以下是关于“IntelliJ IDEA 2018激活”的完整攻略,包括基本概念、步骤和两个示例。 基本概念 IntelliJ IDEA是一款由JetBrains开发的Java集成开发环境(IDE),它提供了丰富的功能和工具,帮助开发人员更高地开发Java应用程序。IntelliJ IDEA 2018是IntelliJ IDEA的一个版本,它在2018年发布。…

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