Python:Playwright 之 page 页面操作[详细介绍]

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): 模拟媒体类型

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/5652.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WPF之border标签边框控件、设置弧度、图片

border标签在WPF中承担着边框的角色又称之为边框标签,使用嵌套的方法去给一些标签添加边框,border标签包裹目标标签(border不能有多个子元素)。一般在给标签添加弧度时可以使用border。 常用属性 CornerRadius边框拐角的弧度,当宽高是一样的…

Alibaba Cloud Linux 3.2104 LTS 64位安装mysql 8.0报错

问题描述 Alibaba Cloud Linux 3.2104 LTS 64位安装mysql 8.0提示 Error: GPG check FAILED 问题原因 官方 MySQL 存储库的 GPG 密钥已过期,无法安装或更新 MySQL 包 mysql官网也提交了该bug: https://bugs.mysql.com/bug.php?id106188 …

动态增删表格

期望目标&#xff1a;实现一个能通过按钮来动态增加表格栏&#xff0c;每次能添加一行&#xff0c;每行末尾有一个删减按钮。 <el-button type"text" class"primary"click"addMember()">添加</el-button> <el-table:data"m…

Pandas Series的运算原来这么简单

Series的运算主要包括加法、减法、乘法和除法等基本算术运算。这些运算通常是按照索引对应计算的&#xff0c;如果两个Series的索引不同&#xff0c;则结果中对应位置将填充为NaN&#xff08;空值&#xff09;。 需要注意的是&#xff0c;在进行Series运算时&#xff0c;需要确…

【linux】进程(深入理解linux进程状态)

开始之前先说一个与本文无关的小知识&#xff0c;chdir命令可以更改当前进程的工作目录哦。 目录 linux具体进程状态&#xff1a;R && S&#xff1a;T && t&#xff1a;D&#xff1a;僵尸进程 && 孤儿进程&#xff1a; OS的理论线&#xff1a;运行&…

讯饶科技 X2Modbus 敏感信息泄露

讯饶科技 X2Modbus 敏感信息泄露 文章目录 讯饶科技 X2Modbus 敏感信息泄露漏洞描述影响版本实现原理漏洞复现修复建议 漏洞描述 X2Modbus是一款功能很强大的协议转换网关&#xff0c; 这里的X代表各家不同 的通信协议&#xff0c;2是To的谐音表示转换&#xff0c;Modbus就是最…

Map系列集合的底层原理及集合嵌套

HashMap集合的底层原理 HashMap跟HashSet的底层原理是一模一样的&#xff0c;都是基于哈希表实现的。 实际上:原来学的Set系列集合的底层就是基于Map实现的&#xff0c;只是Set集合中的元素只要键数据&#xff0c;不要值数据而已。 public HashSet()f{ mapnew HashMap<>…

Java请求体和响应体

请求体 Data JsonNaming(value PropertyNamingStrategies.UpperCamelCaseStrategy.class) public abstract class ApiReq implements LRequest {private String requestID; } 响应体 Data JsonNaming(value PropertyNamingStrategies.UpperCamelCaseStrategy.class) public…

Ps:应用智能锐化滤镜

智能锐化 Smart Sharpen滤镜具有“USM 锐化”滤镜所没有的锐化控制功能。不仅可以设置不同的锐化算法&#xff0c;还可以分别控制在阴影区域和高光区域中进行的锐化量。 ◆ ◆ ◆ 一般使用方法与步骤 1、根据模糊的原因选择“移去”算法&#xff0c;默认是“高斯模糊”。 2、…

制作场景资源的Prefab

制作骨骼模型的Prefab 现在游戏内的使用骨骼模型是通过老版的Animator去实现控制的&#xff0c;所以需要将模型切换为Animator 第一步&#xff0c;动画类型设置为Generic&#xff0c;创建Avatar 模型里面会有对应的Avatar文件 我们还需要一个Controller文件&#xff0c;用于…

镜像:数字时代的自我呈现与虚拟重构

在数字时代&#xff0c;镜像的概念已超越了传统的物理范畴&#xff0c;它不再仅仅是水面或镜面上的反射&#xff0c;而是深入到了我们日常生活的各个角落。作为信息技术发展的重要成果&#xff0c;数字镜像已成为人们认识自我、展现自我和重塑自我的重要工具。#AutoDL #AutoDL …

设计模式-状态模式(State Pattern)结构|原理|优缺点|场景|示例

设计模式&#xff08;分类&#xff09; 设计模式&#xff08;六大原则&#xff09; 创建型&#xff08;5种&#xff09; 工厂方法 抽象工厂模式 单例模式 建造者模式 原型模式 结构型&#xff08;7种&#xff09; 适配器…

Go 语言基础(二)【数组、切片、指针、map、struct】

1、数组 特别需要注意的是&#xff1a;在 Go 语言中&#xff0c;数组长度也是数组类型的一部分&#xff01;所以尽管元素类型相同但是长度不同的两个数组&#xff0c;它们的类型并不相同。 1.1、数组的初始化 1.1.1、通过初始化列表{}来设置值 var arr [3]int // int类型的数…

ArrayList知识点详解

目录 1.简介 2.ArrayList的使用 &#xff08;1&#xff09;如何实例化ArrayList&#xff1f;&#xff08;如何创建&#xff1f;&#xff09; &#xff08;2&#xff09;如何构造使用&#xff1f; &#xff08;3&#xff09;为什么ArrayList的无参构造可以添加数据 &#…

引用参数的不同种类

1. 示例一 #include <iostream> #include <string>struct Obj{Obj(){std::cout << "Ctor called.\n";}Obj(const Obj&){std::cout << "Copy ctor called.\n"; }~Obj(){std::cout << "Dtor called.\n";} }…

rust疑难杂症

rust疑难杂症解决 边碰到边记录&#xff0c;后续可能会逐步增加&#xff0c;备查 cargo build时碰到 Blocking waiting for file lock on package cache 原因是Cargo 无法获取对包缓存的文件锁&#xff0c; 有时vscode中项目比较多&#xff0c;如果其中某些库应用有问题&…

深入理解多层感知机MLP

1. 基础理论 神经网络基础&#xff1a; 目标&#xff1a;了解神经网络的结构&#xff0c;包括神经元、权重、偏置和激活函数。 神经网络是由多个层次的神经元组成的网络&#xff0c;它模拟了人脑处理信息的方式。每个神经元可以接收输入、处理输入并生成输出。这一过程涉及到…

Linux防火墙与SElinux

文章目录 一、防火墙介绍二、iptables和firewalld的区别操作方式&#xff1a;配置层面&#xff1a;性能和管理&#xff1a; 三、iptables与firewalld的优缺点iptablesfirewalld 四、iptables的工作流程五、firewalld的工作流程六、iptables安装与使用6.1、关闭firewalld服务6.2…

c#数据库: 11.分组统计学生信息/ 12.视图查询

该例以学生信息表为例&#xff0c;将学生信息按年级和性别分组&#xff0c;统计各年级男生和女生的人数、总成绩和平均成绩&#xff0c;并将查询结果按平均成绩降序排列。下图是原数据表staq: 【C#实现过程】 &#xff08;1&#xff09;创建一个名为StudentGroup的窗体应用程序…

RK3588S和ARM阵列服务器在虚拟化云平台的应用

RK3588是瑞芯微2021年底推出的首款高端8nm旗舰芯片&#xff0c;而RK3588S 则是针对消费端市场在RK3588基础上缩减了部分外围接口&#xff0c;CPU、GPU和NPU等主要参数得到了保留&#xff0c;主要应用范围为高端ARM平板、ARM笔电产品&#xff0c;会议平板类、ARM服务器、智能机器…