网站 建设 现状,网站建设项目招标书,公司logo背景墙实景图,网站建设以推广1.简介
标签操作其实也是基于浏览器上下文#xff08;BrowserContext#xff09;进行操作的#xff0c;而且宏哥在之前的BrowserContext也有提到过#xff0c;但是有的童鞋或者小伙伴还是不清楚怎么操作#xff0c;或者思路有点模糊#xff0c;因此今天单独来对其进行讲…1.简介
标签操作其实也是基于浏览器上下文BrowserContext进行操作的而且宏哥在之前的BrowserContext也有提到过但是有的童鞋或者小伙伴还是不清楚怎么操作或者思路有点模糊因此今天单独来对其进行讲解和分享一下希望您有所帮助。
2.单标签页
单个标签操作这个是最简单的之前讲的绝大多数都是单个标签的操作。通过context.new_page()就可以创建一个页面。
实战举例以度娘为例首先启动浏览器然后再设置浏览器的大小。查询“北京宏哥”后刷新页面执行回退到百度首页然后有执行前进进入到搜索“北京宏哥”页面最后退出浏览器。
2.1代码设计
按照上边的步骤进行代码设计如下图所示 2.2参考代码
# codingutf-8# 1.先设置编码utf-8可支持中英文如上一般放在第一行# 2.注释包括记录创建时间创建人项目名称。Created on 2023-06-27
author: 北京-宏哥 QQ交流群705269076
公众号北京宏哥
Project: 《《最新出炉》系列初窥篇-PythonPlaywright自动化测试-10-标签页操作
# 3.导入模块
from playwright.sync_api import sync_playwrightwith sync_playwright() as p :# 1.启动浏览器browser p.chromium.launch(headlessFalse)# 2.设置浏览器窗口大小context browser.new_context(viewport{width: 1920, height: 1080},)page context.new_page()# 3.访问度娘page.goto(https://www.baidu.com)# 等待5秒page.wait_for_timeout(5000)# 4.输入“北京宏哥”点击“百度一下”page.fill(input[name\wd\], 北京宏哥)page.click(text百度一下)# 等待5秒page.wait_for_timeout(5000)# 5.刷新页面page.reload()# 等待5秒page.wait_for_timeout(5000)# 6.浏览器后退page.go_back()# 等待5秒page.wait_for_timeout(5000)# 7.浏览器前进page.go_forward()# 8.浏览器退出page.wait_for_timeout(5000)context.close()browser.close()
2.3运行代码
1.运行代码右键RunTest控制台输出如下图所示 2.运行代码后电脑端的浏览器的动作可以看到查询“北京宏哥”后刷新页面执行回退到百度首页然后有执行前进进入到搜索“北京宏哥”页面。如下图所示 3.多标签页
每个浏览器上下文可以承载多个页面选项卡。
每个页面都像一个聚焦的活动页面。不需要将页面置于最前面。上下文中的页面遵循上下文级别的模拟例如视口大小、自定义网络路由或浏览器区域设置。
# create two pages
page_one context.new_page()
page_two context.new_page()# get pages of a browser context
all_pages context.pages
实战举例在page_one 标签页打开百度输入“北京-宏哥” 在page_two 标签页打开百度输入“宏哥”。
3.1代码设计 3.2参考代码
# codingutf-8# 1.先设置编码utf-8可支持中英文如上一般放在第一行# 2.注释包括记录创建时间创建人项目名称。Created on 2023-07-13
author: 北京-宏哥 QQ交流群705269076
公众号北京宏哥
Project: 《最新出炉》系列入门篇-PythonPlaywright自动化测试-10-标签页操作tab
# 3.导入模块
from playwright.sync_api import sync_playwright#打开两个浏览器上下文
with sync_playwright() as p:browser p.chromium.launch(headlessFalse, slow_mo100)context browser.new_context() # 创建上下文浏览器实例1page1 context.new_page() # 打开标签页1page2 context.new_page() # 打开标签页2page1.goto(https://www.baidu.com/)page1.fill(#kw, 北京宏哥)page1.wait_for_timeout(1000)page2.goto(https://www.baidu.com/)page2.fill(#kw, 宏哥)page2.wait_for_timeout(1000)browser.close()
3.3运行代码
1.运行代码右键RunTest控制台输出如下图所示 2.运行代码后电脑端的浏览器的动作。虽然你看不到第一个页面的操作实际上它已经操作了每个页面 page对象都是聚焦的活动页面 不需要将页面置于最前面。如下图所示 4.处理新标签页
浏览器上下文中的事件page可用于获取在上下文中创建的新页面。这可用于处理通过target_blank链接打开的新页面。
# Get page after a specific action (e.g. clicking a link)
with context.expect_page() as new_page_info:page.get_by_text(open new tab).click() # Opens a new tab
new_page new_page_info.valuenew_page.wait_for_load_state()
print(new_page.title())
实战举例打开百度页面的-新闻链接会出现一个新标签页如下图所示 4.1代码设计 4.2参考代码
# codingutf-8# 1.先设置编码utf-8可支持中英文如上一般放在第一行# 2.注释包括记录创建时间创建人项目名称。Created on 2023-07-13
author: 北京-宏哥 QQ交流群705269076
公众号北京宏哥
Project: 《最新出炉》系列入门篇-PythonPlaywright自动化测试-10-标签页操作tab
# 3.导入模块
from playwright.sync_api import sync_playwrightwith sync_playwright() as p:browser p.chromium.launch(headlessFalse, slow_mo1000)context browser.new_context() # 创建上下文浏览器实例page context.new_page() # 打开标签页page.goto(https://www.baidu.com/)print(page.title())# Get page after a specific action (e.g. clicking a link)with context.expect_page() as new_page_info:page.click(text新闻) # Opens a new tabnew_page new_page_info.valuenew_page.wait_for_load_state() # 等待页面加载到指定状态print(new_page.title())browser.close()
4.3运行代码
1.运行代码右键RunTest控制台输出如下图所示 2.运行代码后电脑端的浏览器的动作。如下图所示 如果触发新页面的操作未知可以使用以下模式。
# Get all new pages (including popups) in the context
def handle_page(page):page.wait_for_load_state()print(page.title())context.on(page, handle_page)
5.处理弹出窗口
如果页面打开一个弹出窗口例如通过链接打开的页面您可以通过监听页面上的事件target_blank来获取对它的引用。popup 除了browserContext.on(page)事件之外还会发出此事件但仅针对与此页面相关的弹出窗口。
# Get popup after a specific action (e.g., click)
with page.expect_popup() as popup_info:page.get_by_text(open the popup).click()
popup popup_info.valuepopup.wait_for_load_state()
print(popup.title())
如果触发弹出窗口的操作未知则可以使用以下模式。# Get all popups when they open
def handle_popup(popup):popup.wait_for_load_state()print(popup.title())page.on(popup, handle_popup)
6.小结 好了时间不早了关于标签操作宏哥就今天就分享到这里。感谢你耐心地阅读。 每天学习一点今后必成大神-
往期推荐由于跳转参数丢失了所有建议选中要访问的右键在新标签页中打开链接即可访问:
Appium自动化系列耗时80天打造的从搭建环境到实际应用精品教程测试
Python接口自动化测试教程熬夜87天整理出这一份上万字的超全学习指南
PythonSelenium自动化系列通宵700天从无到有搭建一个自动化测试框架
JavaSelenium自动化系列仿照Python趁热打铁呕心沥血317天搭建价值好几K的自动化测试框架
Jmeter工具从基础-进阶-高级费时2年多整理出这一份全网超详细的入门到精通教程
Fiddler工具从基础-进阶-高级费时100多天吐血整理出这一份全网超详细的入门到精通教程
Pycharm工具基础使用教程