playwright学习笔记-frame切换/页面切换/多个浏览器

frame切换

frame的切换使用使用两个方法

page.frame()支持name或url属性定位
page.frame_locator()定位器定位

常用的还是page.frame_locator(),也是演示推荐使用的方法,如图下元素:

    # 定位器会返回frame对象
    frame = page.frame_locator('iframe[src]')
    # 使用frame对象进行定位操作
    frame.locator() # 

注意跟selenium不同的是,selenium定位都是基于driver对象,而palywright切换frame后则是基于返回的frame对象,否则无法定位到,如果frame下还有嵌套frame,则继续通过frame定位下层frame。

页面切换

每个page对象就是一个页面,可以通过context实现新建空白页,获取所有page,实现page页面操作对象切换,如果不明白context和page的关系,可以回到playwright学习笔记-安装使用,了解他们之间的关系。

代码示例如下:

with sync_playwright() as p:
    browser = p.chromium.launch(headless=False)
    context = browser.new_context()
    page1 = context.new_page()
    page1.goto('https://www.baidu.com/')
    # 获取百度的标题
    print('第一个页面标题:', page1.title())
    # 新增页面
    page2 = context.new_page()
    page2.goto('https://www.taobao.com/')
    print('第二个页面标题:', page2.title())
    # 通过获取所有页面列表
    page3 = context.pages[1]
    print('新页面标题:', page3.title())

 

多浏览器切换

多浏览器使用的场景,适合需要登录多个用户,交互操作进行的场景,通过browser对象创建context,再新增一个page对象

代码示例:

with sync_playwright() as p:
    browser = p.chromium.launch(headless=False)
    context = browser.new_context()
    page = context.new_page()
    page.goto('https://www.baidu.com/')
    # 第一个浏览器
    print('第一个浏览器:', page.title())
    new_context = browser.new_context()
    # 第二个浏览器
    new_page = new_context.new_page()
    new_page.goto('https://www.taobao.com/')
    print('第二个浏览器:', new_page.title())

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值