python+playwright 学习-16.new_context上下文之非常好用的base_url 参数
前言
在做自动化测试的时候,我们经常是基于某个测试环境地址去测试某个项目,所以应该把它单独拿出来做为一个全局的配置。
其它地方用相对地址就行。在pytest用例里面可以用到pytest-base-url 插件来实现。
playwright 不得不说设计的非常人性化,堪称web自动化界的“海底捞”服务,就差上厕所帮你扶着了~
使用场景
如下测试场景, 在多个地方都会有访问的地址,并且环境地址都是一样https://www.cnblogs.com
, 也就是我们说的base_url地址。
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch(headless=False)
context = browser.new_context()
page = context.new_page()
# 打开首页
page.goto("https://www.cnblogs.com/")
# 点点点后打开其他页
page.goto("https://www.cnblogs.com/yoyoketang")
context.close()
browser.close()
当很多地方都用到base_url 的时候,为了方便切换环境,应该单独拿出来,做全局配置
base_url 的使用
base_url 参数是在new_context() 新建上下文的时候使用
优化后的代码如下:
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch(headless=False)
context = browser.new_context(base_url='https://www.cnblogs.com')
page = context.new_page()
# 打开首页
page.goto("/")
# 点点点后打开其他页
page.goto("/yoyoketang")
context.close()
browser.close()
这样只需相对地址即可访问了。
pytest-playwright 使用
在pytest-playwright 插件中已经自带了pytest-base-url 插件,于是仅需在pytest.ini中配置
[pytest]
base_url=https://www.cnblogs.com
或者使用命令行参数
pytest --base-url https://www.cnblogs.com
在测试用例中写相对地址即可
from playwright.sync_api import Page
def test_blog(page: Page):
"""首页"""
page.goto("/")
def test_yoyo_blog(page: Page):
"""上海悠悠博客地址"""
page.goto("/yoyoketang")
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
2022-02-28 FastAPI学习-2.url 上的路径参数
2022-02-28 python asyncio 异步 I/O - 实现并发http请求(asyncio + aiohttp)
2022-02-28 python asyncio 异步 I/O - 协程(Coroutine)与运行
2021-02-28 面试题-python 什么是迭代器(Iterator)?
2017-02-28 Selenium2+python自动化34-获取百度输入联想词