赞
踩
在网页上点击一些按钮或超链接时,有时会打开一个新的网页而不是一个窗口。这个时候如果下一步操作是在新的网页上,那么就需要切换网页窗口,切换到网页后再执行元素定位等操作。playwright处理浏览器多窗口切换简单快捷。下边老姜就给小伙伴们或者童鞋们介绍一下playwrigh如何处理浏览器多个窗口的切换方法。
窗口切换过程:
1、 context.pages 获取所有的page对象,返回数据类型为列表,列表中的网页对象的索引按照打开顺序从0开始依次递增。
2、 page. bring_to_front() 激活网页,将网页显示在屏幕最上层,本行代码不写也不影响脚本执行。
3、 page.close() 关闭网页
我们以万年历、计算器这几个网页为例来看一下如何切换网页。
实践代码:
''' author: 测试-老姜 交流微信/QQ:349940839 #欢迎添加微信或QQ,加入学习群共同学习交流。 #QQ交流群号:877498247 #西安的朋友欢迎当面交流。 ''' from playwright.sync_api import Playwright, sync_playwright, expect playwright = sync_playwright().start() browser = playwright.chromium.launch(headless=False, args=['--start-maximized']) #默认无头模式,设置浏览器最大化 context = browser.new_context(no_viewport=True) # 创建上下文,相当浏览器于实例化,即打开浏览器 page = context.new_page() # 打开一个新标签页 page.goto("http://127.0.0.1:8080/oa/login.jsp") # 打开网址 page.wait_for_timeout(2000) page.get_by_role('link',name='万年历').click() page.get_by_role('link',name='计算器').click() page.wait_for_timeout(2000) page_li = context.pages page_li[1].bring_to_front() #万年历切换到最上层 for _ in range(3): page_li[1].locator('#yuejia').click() #定位万年历页面上的元素并点击 page.wait_for_timeout(2000) page_li[2].bring_to_front() # 计算器切换到最上层 for _ in range(3): page_li[2].locator('[name="k7"]').click() #定位计算器页面上的元素并点击 page.wait_for_timeout(2000) page_li[1].close() # 关闭万年历 page.wait_for_timeout(2000) page_li[2].close() # 关闭计算器 page.wait_for_timeout(10000) context.close() browser.close() playwright.stop()
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。