playwright启动浏览器&打开页面
playwright 支持chromium
, firefox,
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