Bootstrap

Playwright基础学习——浏览器选项

一、层级

在Playwright种,测试层级为

Broswer->Context->Page

二、创建浏览器示例,开启浏览器

browser = playwright.chromium.launch(headless=False, args=['--start-maximized'])

上面启动了一个浏览器,开启有头模式,并且通过args参数向chrome传递开启时窗口最大化。

开启浏览器格式为playwright.browser_type.launch (...args),browser_type为浏览器类型

args为传递给浏览器的参数,这个可以参考浏览器的文档。

忽略HTTPS告警:

'--ignore-certificate-errors'

请参考官方文档,查看完整的API参数列表:BrowserType | Playwright Python

三、启动上下文

context = browser.new_context(no_viewport=True)

上下文就是浏览器的环境,Page是页面包含了元素、组件的状态等等,而上下文则包括了会话状态、Cookie、页面信息等。

注意,我们需要设置no_viewport=True,否则将默认按照800*600创建视口,你会发现,窗口很大,但是网页很小。

四、为上下文增加一个Cookie

browser_context.add_cookies([cookie_object1, cookie_object2])

参数为字典列表,每个cookie字典有如下字段,

其中url或者域名、path虽然都是可选的,但必须要有一个。 

name 名称

value 值

url 可选

domain 域名

path 路径

expires 浮点数,过期时间,Unix时间(精确到秒)可选

httpOnly 是否为httpOnly,可选

secure 安全模式,可选

sameSite "Strict"|"Lax"|"None" 同站策略,可选

五、前往页面 

page = context.new_page()
page.goto("https://www.baidu.com")

在context上新建一个页面对象然后调用goto方法即可。

六、退出浏览器

browser_context.close()
browser.close()

先关闭上下文,再退出浏览器。

关闭上下文时,上下文所属的页面也会一起关闭。

七、以特定设备布局打开浏览器

from playwright.sync_api import sync_playwright

def run(playwright):
    iphone_13 = playwright.devices['iPhone 13']
    browser = playwright.webkit.launch(headless=False)
    context = browser.new_context(
        **iphone_13,
    )

with sync_playwright() as playwright:
    run(playwright)

;