25新一代自动化测试神器playwright+python系列课程_playwright网页切换

Playwright网页切换

在网页上点击一些按钮或超链接时,有时会打开一个新的网页而不是一个窗口。这个时候如果下一步操作是在新的网页上,那么就需要切换网页窗口,切换到网页后再执行元素定位等操作。playwright处理浏览器多窗口切换简单快捷。下边老姜就给小伙伴们或者童鞋们介绍一下playwrigh如何处理浏览器多个窗口的切换方法。

窗口切换过程:

context.pages 获取所有的page对象,返回数据类型为列表,列表中的网页对象的索引按照打开顺序从0开始依次递增。

page. bring_to_front() 激活网页,将网页显示在屏幕最上层,本行代码不写也不影响脚本执行。

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()

posted @ 2024-03-21 11:01  测试_老姜  阅读(28)  评论(0)    收藏  举报