Python:Playwright之 page 页面操作
- 概述
- Page常用方法
- 导航和页面操作
- 页面元素定位和交互
- 页面内容获取
- 页面事件和等待
- JavaScript 执行和脚本处理
- 网络请求和拦截处理
- 期待特定事件或条件发生
- 其他常用操作
概述
Playwright 提供了丰富的页面操作功能,通过 page 对象可以实现对网页的导航、元素定位、交互、页面事件监测等操作。page 对象是 Playwright 中表示页面的核心对象,它允许我们控制和操作浏览器中的页面。
Page常用方法
导航和页面操作
goto(url, **kwargs)
: 导航到指定的 URL。go_back()
: 后退到浏览器历史记录中的上一页。go_forward()
: 前进到浏览器历史记录中的下一页。reload(**kwargs)
: 重新加载当前页面。set_content(html, **kwargs)
: 设置页面的 HTML 内容。opener()
: 返回新的 Page 实例,表示打开当前页面的页面。pause(timeout)
: 暂停执行一段时间。bring_to_front()
: 将页面置于浏览器前台。set_viewport_size(width, height)
: 设置页面视口大小。close()
: 关闭页面。
页面元素定位和交互
locator(selector)
: 创建一个定位器,用于查找页面元素。click(selector, **kwargs)
: 点击页面元素。fill(selector, value, **kwargs)
: 向表单元素填充值。drag_and_drop(source, target, **kwargs)
: 拖拽元素从源位置到目标位置。frame(url=None, name=None)
: 返回新的 Frame 实例。frame_locator(selector)
: 使用选择器返回新的 Frame 实例。
页面内容获取
title()
: 获取当前页面的标题。content()
: 获取当前页面的 HTML 内容。screenshot(**kwargs)
: 对页面进行截图。pdf(**kwargs)
: 生成页面的 PDF 版本。
页面事件和等待
wait_for_load_state(state=None, timeout=None)
: 等待页面加载状态变为指定状态。wait_for_url(url, timeout=None)
: 等待 URL 变为指定值。wait_for_event(event, predicate=None, timeout=None)
: 等待特定事件发生。wait_for_function(page_function, *args, timeout=None, force_expr=False, polling=None)
: 等待函数执行。
JavaScript 执行和脚本处理
evaluate(page_function, *args, force_expr=False)
: 在页面上下文中执行 JavaScript 代码并返回结果。evaluate_handle(page_function, *args, force_expr=False)
: 在页面上下文中执行 JavaScript 代码并返回 JSHandle 对象。add_init_script(script, **kwargs)
: 添加一个初始化脚本,将在每次新页面加载时执行。add_script_tag(url=None, path=None, content=None)
: 向页面添加一个 script 标签,可以是 URL、文件路径或者直接提供脚本内容。add_locator_handler(name, script=None, handler=None)
: 添加一个定位器处理程序,允许使用自定义定位器。add_style_tag(url=None, path=None, content=None)
: 向页面添加一个 style 标签,可以是 URL、文件路径或者直接提供样式内容。expose_binding(name, callback)
: 公开绑定,使得 JavaScript 环境可以调用 Python 中的函数。expose_function(name, callback)
: 公开函数,使得 JavaScript 环境可以调用 Python 中的函数。
网络请求和拦截处理
route(url, handler)
: 拦截并路由给定 URL 的请求。route_from_har(entries)
: 使用 HAR(HTTP 归档文件格式)中的条目设置路由规则。unroute(url=None)
: 取消对指定 URL 的请求拦截。unroute_all()
: 取消所有请求的拦截。
期待特定事件或条件发生
expect_console_message(text=None, predicate=None, timeout=None)
: 期待控制台消息。expect_download(**kwargs)
: 期待下载。expect_event(event, predicate=None, timeout=None)
: 期待特定事件。expect_file_chooser(predicate=None, timeout=None)
: 期待文件选择器。expect_popup(**kwargs)
: 期待弹出窗口。expect_request(url=None, predicate=None, timeout=None)
: 期待特定请求。expect_request_finished(url=None, predicate=None, timeout=None)
: 期待特定请求完成。expect_response(url=None, predicate=None, timeout=None)
: 期待特定响应。expect_websocket(url=None, predicate=None, timeout=None)
: 期待 WebSocket 连接。expect_worker(url=None, predicate=None, timeout=None)
: 期待工作线程。
其他常用操作
set_default_navigation_timeout(timeout)
: 设置默认的页面导航超时时间。set_default_timeout(timeout)
: 设置默认的操作超时时间。set_extra_http_headers(headers)
: 设置额外的 HTTP 请求头。set_content(html, **kwargs)
: 设置页面内容。emulate_media(media=None, **kwargs)
: 模拟媒体类型