首页 > 编程语言 >python+playwright 学习-17.模拟手机浏览器测试

python+playwright 学习-17.模拟手机浏览器测试

时间:2023-02-28 14:47:16浏览次数:42  
标签:playwright 浏览器 17 python sync 模拟手机 context page browser

前言

使用 Playwright,您可以在任何浏览器上测试您的应用程序,也可以模拟真实设备,例如手机或平板电脑。

设置手机模式

只需配置您想要模拟的设备,Playwright 就会模拟浏览器行为,例如"userAgent"、"screenSize"以及"viewport"是否"hasTouch"启用。
您还可以为所有测试或特定测试模拟,以及设置以"geolocation"显示通知或更改."locale""timezone""permissions""colorScheme"

Playwright使用playwright.devices为选定的台式机、平板电脑和移动设备提供设备参数注册表。
它可用于模拟特定设备的浏览器行为,例如用户代理、屏幕尺寸、视口以及是否启用了触摸。所有测试都将使用指定的设备参数运行。

from playwright.sync_api import sync_playwright


def run(playwright):
    iphone_12 = playwright.devices['iPhone 12']
    browser = playwright.chromium.launch(headless=False)
    context = browser.new_context(
        **iphone_12,
    )
    page = context.new_page()
    page.goto('https://m.baidu.com')
    page.pause()


with sync_playwright() as playwright:
    run(playwright)

运行后就是以手机模式打开的

pytest-playwright 测试用例

在pytest-playwright 测试用例中可以通过重写browser_context_args 来实现

# conftest.py

import pytest


@pytest.fixture(scope="session")
def browser_context_args(browser_context_args, playwright):
    iphone_11 = playwright.devices['iPhone 11 Pro']
    return {
        **browser_context_args,
        **iphone_11,
    }

用例部分

from playwright.sync_api import Page


def test_m_baidu(page: Page):
    page.goto("https://m.baidu.com/")

这样可以指定手机型号运行用例

标签:playwright,浏览器,17,python,sync,模拟手机,context,page,browser
From: https://www.cnblogs.com/yoyoketang/p/17164176.html

相关文章

  • 《流畅的Python》读后感
    《流畅的Python》这本书是一本非常有价值的Python编程书籍。它不仅涵盖了Python的基础知识,还深入探讨了许多高级主题,如装饰器、元类、协程等,让读者可以更深入地理解Py......
  • python对mysql数据库进行读写的操作
    python对mysql数据库进行读写的操作importpymysql#使用python连接mysql数据库,并对数据库进行添加数据的方法#创建连接,数据库主机地址数据库用户名称密码数据库......
  • Python中如何读写.bin文件?
    我们知道numpy的array是可以保存到文件的,一个常用的做法是通过to_file()保存到而进行.bin文件中,然后再通过from_file()从.bin文件中将其读取出来,下面看一个例子。data_in......
  • 使用pip导出Python模块
    查看本地模块列表·#查看已安装模块#piplistor#pipfreeze打包本地模块打包单个模块pipdownloadpyarmor-d/root#pipdownload模块名-d路径打包全部......
  • 17. Laravel 模型关系:多对多
    Laravel模型关系:多对多配套视频地址:https://www.bilibili.com/video/av73028135?p=4多对多:一个人可以扮演多个角色,一个角色可以被多个人扮演。数据结构#users:id,......
  • 我自己的 Python Web 框架
    原文地址:https://healeycodes.com/my-own-python-web-framework在过去的几个月里,我一直在从头开始建立我自己的软件工具--像编程语言、文本编辑器和CLI工具。在周末,我......
  • python+playwright 学习-16.new_context上下文之非常好用的base_url 参数
    前言在做自动化测试的时候,我们经常是基于某个测试环境地址去测试某个项目,所以应该把它单独拿出来做为一个全局的配置。其它地方用相对地址就行。在pytest用例里面可以用......
  • python爬取豆瓣Top250(urlliib+re+bs4+xlwt)
    frombs4importBeautifulSoupimporturllib.request,urllib.errorimportxlwt#进行excel操作importreimporttime#获取电影名的规则findtitle=re.compil......
  • python exec_command 命令无效的原因
    当使用PythonParamikoexec_command执行时,某些Unix命令失败并显示“未找到”_互联网集市(qyyshop.com)链接里的解释解决了问题  本来直接调用runmqsc,命令无效,因......
  • python 多线程编程
    多线程编程importtimeimportthreadingdefsing(msg):whileTrue:print(msg)time.sleep(1)defdance(msg):whileTrue:print......