playwright启动浏览器&打开页面


playwright 支持chromiumfirefox, webkit,打开浏览器

with sync_playwright() as p:
    browser = p.chromium.launch(headless=False) #打开浏览器
    browser.close()#关闭浏览器

playwright支持创建多个Browser contexts,相当于是打开浏览器后,可以创建多个页面上下文,每个上下文做的操作可以不同

我们可以将打开浏览器的操作放在一批用例的前置操作中,然后通过多个页面上下文来控制每个用例中的操作


from playwright.sync_api import sync_playwright
#打开两个浏览器上下文
with sync_playwright() as p:
browser = p.chromium.launch(headless=False,slow_mo=100) #打开浏览器
context1 = browser.new_context() #创建浏览器上下文,支持创建多个上下文
page1 = context1.new_page()#新打开一个浏览器标签页
page1.goto("https://www.baidu.com")
context2 = browser.new_context() # 创建浏览器上下文,支持创建多个上下文
page2 = context2.new_page()#新打开一个浏览器标签页
page2.goto("https://www.bilibili.com")
browser.close()
 

浏览器和上下文都可以使用new_page()方法打开一个新的浏览器标签页(选项卡)

browser = p.chromium.launch(headless=False)
        page = browser.new_page()

当我们通过点击某些按钮/超链接打开一个新的浏览器标签页时,还需要继续在这个浏览器标签页上继续操作时,那么可以使用以下方式

with sync_playwright() as p:
    browser = p.chromium.launch(headless=False, slow_mo=100)  # 打开浏览器
    context1 = browser.new_context()  # 创建浏览器上下文,支持创建多个上下文
    page1 = context1.new_page()
    page1.goto("https://www.baidu.com")
    with context1.expect_page() as new_page_info:
        page1.click('//a[@href="https://www.hao123.com"]')  # 在百度首页点击hao123后会打开一个新的选项卡
    new_page = new_page_info.value
    new_page.click('//a[@href="http://tuijian.hao123.com/"]') #在hao123点击hao123推荐

参考链接:https://playwright.dev/python/docs/multi-pages

相关