上海-悠悠
上海-悠悠 专注python自动化测试
展开
-
python+playwright 学习-91 cookies的获取保存删除相关操作
playwright cookie相关操作原创 2024-07-06 09:30:30 · 234 阅读 · 0 评论 -
python+playwright 学习-90 and_ 和 or_ 定位
playwright 中的and_和or_定位原创 2024-07-06 09:25:35 · 358 阅读 · 0 评论 -
python+playwright 学习-89 Allure 报告带上Trace Viewer 日志追踪
用例执行失败时,我们希望能查看日志,追踪页面操作的每个详细过程。原创 2024-04-19 17:00:41 · 142 阅读 · 0 评论 -
python+playwright 学习-88 禁止加载图片等资源
对于爬虫的小伙伴来说,有时候只需抓取页面的文本,不用加载图片,可以加快操作页面速度,那么我们可以设置禁止加载图片等资源。原创 2024-04-14 15:57:49 · 348 阅读 · 0 评论 -
Playwright 结合 Selenium Grid - 1.windows 环境使用教程
Playwright 可以连接到运行 Selenium 4 的 Selenium Grid Hub 来启动 Google Chrome 或 Microsoft Edge 浏览器,而不是在本地机器上运行浏览器。原创 2024-01-12 16:43:05 · 1259 阅读 · 0 评论 -
python+playwright 学习-87 launch_persistent_context开启手机模式
launch_persistent_context 模式启动浏览器时,开启手机模式原创 2024-01-03 14:53:53 · 2344 阅读 · 0 评论 -
python+playwright 学习-86 启动参数 proxy 设置代理几种方式
在使用playwright执行代码的时候,如需设置代理,可以在启动的时候加proxy 参数设置代理。本篇总结下可以加proxy代理的几种方式。原创 2023-11-09 11:02:25 · 1461 阅读 · 0 评论 -
python+playwright 学习-85 集合 gremlins web 网页稳定性测试实例
常见的几个问题与讲解方法:1.如何收集console里面报错的内容2.如何复现bug3.设置攻击次数与延迟原创 2023-10-09 07:36:05 · 545 阅读 · 0 评论 -
python+playwright 学习-84 Response 接口返回对象
Response 是获取接口响应对象,根据Response 对象可以获取响应的状态码,响应头部,响应正文等内容。原创 2023-10-06 09:50:03 · 791 阅读 · 0 评论 -
python+playwright 学习-83 page.expect_response()捕获网络返回数据
expect_response()方法可以捕获接口返回的数据,在爬取网页数据时非常有用。原创 2023-10-06 09:49:07 · 684 阅读 · 0 评论 -
python+playwright 学习-82 Request 对象
每当页面发送网络资源请求时,页面都会发出以下事件序列:- `page.on("request")` 当页面发出请求时触发- `page.on("response")` 接收到请求的响应状态和标头时触发- `page.on("requestfinished")` 当响应主体被下载并且请求完成时发出。原创 2023-10-05 10:03:31 · 561 阅读 · 0 评论 -
python+playwright 学习-81 page.expect_request()捕获网络请求
page.expect_request() 可以捕获网页上发出去的请求,当有多个请求时,可以根据请求url,请求方式判断。原创 2023-10-05 10:02:25 · 832 阅读 · 0 评论 -
python+playwright 学习-80 v1.37版本新增--full-page-screenshot 用例失败截长图
前言--full-page-screenshot参数是pytest-playwright在使用,在失败时是否进行完整页面截图。默认情况下,仅捕获视口。需开启 --screenshot 开关 (默认: off).用例失败截图环境准备:1.安装playwright最新v1.37版本2.安装pytest-playwright 0.4.2 版本用例示例from playwright.sy...原创 2023-08-29 08:20:00 · 243 阅读 · 0 评论 -
python+playwright 学习-79 设置全局导航超时和全局查找元素超时
前言playwright 默认全局的导航时间是30秒,查找元素超时也是30秒, 有以下几个方法设置全局超时时间:browser_context.set_default_navigation_timeout()browser_context.set_default_timeout()page.set_default_navigation_timeout()page.set_defaul...原创 2023-08-28 21:46:00 · 576 阅读 · 0 评论 -
python+playwright 学习-78 获取浏览器cookies
前言playwright 操作浏览器上的页面后,后续如果想结合其他的框架操作接口(如:requests),可以直接获取到浏览器的 cookies。context.cookies() 获取浏览器 cookies使用示例from playwright.sync_api import sync_playwright, expect# 上海悠悠 wx:283340479# blog:http...原创 2023-08-28 16:23:00 · 530 阅读 · 0 评论 -
python+playwright 学习-77 playwright 发送接口请求APIRequestContext
前言每个Playwright浏览器上下文都有与其关联的APIRequestContext实例,该实例与浏览器上下文共享cookie存储,可以通过browser_context.request或page.request访问。也可以通过调用api_request.new_context()手动创建一个新的APIRequest上下文实例。通过浏览器发请求可以通过browser_context.r...原创 2023-08-28 13:09:00 · 363 阅读 · 0 评论 -
python+playwright 学习-76 playwright 忽略SSL 错误
前言playwright 设置 ignore_https_errors 参数忽略 SSL 错误context 上下文中设置browser.new_context() 创建上下文时from playwright.sync_api import sync_playwright, expect# 上海悠悠 wx:283340479# blog:https://www.cnblogs.com...原创 2023-08-27 15:38:00 · 326 阅读 · 0 评论 -
python+playwright 学习-75 playwright 通过浏览器发送post请求
前言page.goto()可以通过浏览器直接发get请求, playwright也可以支持通过浏览器发送post请求。page.goto()使用page.goto() 访问网站的时候,实际上是有返回值的,可以获取到response 对象from playwright.sync_api import sync_playwright, expect# 上海悠悠 wx:283340479...原创 2023-08-20 10:12:00 · 343 阅读 · 0 评论 -
python+playwright 学习-74 set_extra_http_headers设置浏览器请求头部
前言大部分网站保存登录状态是用cookies,也有个别网站是在请求头部添加token实现保存登录。playwright 可以使用set_extra_http_headers() 方法设置浏览器请求头部参数set_extra_http_headers() 方法设置头部参数headers, 字典键值对from playwright.sync_api import sync_playwrig...原创 2023-08-19 19:23:00 · 586 阅读 · 0 评论 -
python+playwright 学习-73 page.wait_for_selector()等待元素到达指定状态
前言网页上的元素有不同状态,有些元素本来不在DOM里,点击某个按钮后才出现。有些元素是本来就已经在DOM里是隐藏的状态,点某个按钮后才变成显示状态。如果我们想让元素到达指定的状态再下一步操作,可以用page.wait_for_selector() 方法。page.wait_for_selector() 方法wait_for_selector() 方法部分源码def wait_for_...原创 2023-08-19 17:23:00 · 1220 阅读 · 0 评论 -
python+playwright 学习-72 设置window.navigator.webdriver属性为false 跳过网站反爬检测
前言有些网站有反爬机制,比如用代码启动的浏览器会被检测到,需要人机验证,用脚本去点击或者滑动滑动虽然能滑动,但是会认证失败。用playwright 和 selenium 启动的浏览器都会用个webdriver 属性。浏览器会根据这个属性判断是否是人工正常操作。window.navigator.webdriver属性人工正常打开的浏览器 window.navigator.webdriver...原创 2023-08-19 15:28:00 · 2044 阅读 · 0 评论 -
python+playwright 学习-71 expect 断言设置timeout 超时和自定义错误内容
前言playwright 提供了一个 expect方法 用于断言,还可以设置超时时间。expect 使用断言描述expect(locator).to_be_checked()Checkbox is checkedexpect(locator).to_be_disabled()Element is disabledexpect(locator).to_be_...原创 2023-08-19 10:03:00 · 359 阅读 · 0 评论 -
python+playwright 学习-70 一闪而过的提示消息如何定位
前言页面上一闪而过的提示语,一般出现1-3秒就会消失,这种消息框如何定位呢?示例如下操作成功的提示语它过1-3秒就自动消失了,按下f12, 鼠标还没指上去就不见了,无法获取它的元素属性。误区: 首先这不是标准的alert,所以不能用 dialog 事件监听(很多初学者分不清alert 和弹出消息框)调试暂停F12后点开源代码,然后点暂停按钮这时候页面处于调试暂停状态了再...原创 2023-08-17 09:13:00 · 210 阅读 · 0 评论 -
python+playwright 学习-69 获取元素属性,文本,输入框值
前言playwright 可以获取元素的属性,元素的文本值,以及input 输入框的内容get_attribute() 获取元素属性inner_text() 元素文本值input_value() 获取输入框的值获取元素属性和文本值以百度页面为例获取div 下第一个a标签元素的属性from playwright.sync_api import sync_playw...原创 2023-07-23 16:17:00 · 1091 阅读 · 0 评论 -
python+playwright 学习-68 事件监听console 内容
前言playwright 可以通过page.on() 监听console 内容console 事件当我们打开百度页面,f12 打开控制台,会看到console 输出的内容playwright 可以通过page.on() 监听console ,获取到console的内容page.on() 监听示例代码from playwright.sync_api import sync_p...原创 2023-07-23 15:47:00 · 412 阅读 · 0 评论 -
python+playwright 学习-67 抓取 table 表格数据
前言最近有小伙伴提到如何抓取 table 表格上的数据,table表格的数据很简单,就是行和列。可以按行抓取,也可以按列抓取。获取table 某一列的数据抓取第3列(项目名称)所有数据定位方式$x('//table/tbody/tr/td[3]')于是可以看到当前页面的第3列数据被全部定位到接下来就可以根据定位的元素获取全部文本# 作者:上海-悠悠 wx:283340479...原创 2023-07-23 10:48:00 · 318 阅读 · 0 评论 -
python+playwright 学习-66 highlight 调试定位时高亮显示元素
前言highlight() 方法是通过高亮显示元素,在调试中有很大优势,可以清楚看到定位的元素所在的位置遇到的问题使用示例:点百度页面,定位文本元素“新闻”后点击from playwright.sync_api import sync_playwright# 上海悠悠 wx:283340479# blog:https://www.cnblogs.com/yoyoketang/wi...原创 2023-05-29 08:29:00 · 65 阅读 · 0 评论 -
python+playwright 学习-62 日历控件操作
前言遇到输入框是弹出日历控件,选一个日期的这种场景,可以直接在输入框输入内容。如果输入框是readonly的时候,可以用js改变输入框的属性日历控件如果输入框是日历控件先看能不能直接输入一个日期,如果能直接输入的情况,就不用点开了代码示例# 上海悠悠 wx:283340479# blog:https://www.cnblogs.com/yoyoketang/from pla...原创 2023-05-24 10:23:00 · 122 阅读 · 0 评论 -
python+playwright 学习-63 table表格定位与数据获取
前言定位table 表格内容以及获取table 表格数据。table 表格场景网页table 表格示例table页面有这几个明显的标签:table、tr、th、td<table>标示一个表格<tr> 标示这个表格的一行</th> 定义表头单元格</td> 定义单元格标签,一组<td>标签将将建立一个单元格,<td...原创 2023-05-24 10:23:00 · 255 阅读 · 0 评论 -
python+playwright 学习-65多线程同时打开多个浏览器不同账号操作
前言最近用小伙伴提到多线程同时操作多个浏览器,每个浏览器用不同账号登录的需求。多线程操作以下是2个账号同时打开2个浏览器操作的示例from playwright.sync_api import sync_playwrightfrom threading import Thread# 上海悠悠 wx:283340479# blog:https://www.cnblogs.com/yo...原创 2023-05-24 10:23:00 · 540 阅读 · 0 评论 -
python+playwright 学习-64 非无痕模式启动浏览器launch_persistent_context
前言最近有一些爬虫用户在使用 playwright 的时候,提到 playwright 默认是用无痕模式打开的浏览器,很多网站会有反爬机制,使用无痕模式打开的时候功能无法正常使用。playwright 提供了 launch_persistent_context 启动浏览器的方法,可以非无痕模式启动浏览器。无痕模式启动浏览器适合做自动化测试的人员非无痕模式启动浏览器适合一些爬虫用户人员...原创 2023-05-24 10:23:00 · 1617 阅读 · 0 评论 -
python+playwright 学习-61 Playwright 和 Selenium 的区别是什么?
前言最近有不少同学问到 Playwright 和 Selenium 的区别是什么?有同学可能之前学过 selenium 了,再学一个 playwright 感觉有些多余,可能之前有项目已经是 selenium 写的了,换成 playwright 需要时间成本,并且可能有未知风险。也有同学之前可能没学过 selenium ,现在正准备入手一个web 自动化框架,但是对于选择selenium ...原创 2023-05-12 21:43:00 · 119 阅读 · 0 评论 -
python+playwright 学习-60 在打开的多个标签页窗口灵活切换
前言当页面打开了多个标签页后,如何切换到自己需要的标签页上呢?使用场景以百度首页为例,当打开多个标签页后, 如何切换到自己想要的页面上操作。通过context.pages 可以获取到所有的page对象,每一个page对象就代表一个标签页实例from playwright.sync_api import sync_playwright# 上海悠悠 wx:283340479# blog...原创 2023-05-04 10:04:00 · 327 阅读 · 0 评论 -
python+playwright 学习-59 grant_permissions 设置默认允许麦克风和摄像头等权限
前言有些场景在使用的时候,会弹出一些权限框,比如麦克风和摄像头等,通过监听alert 是没法捕获的。正确做法是给浏览器设置默认允许麦克风和摄像头等权限,不让弹窗出来。使用context 的 grant_permissions 方法加权限。权限框弹窗示例这种弹窗是权限窗,不是alert解决办法context 有个 grant_permissions 方法可以加权限,常见的权限如下...原创 2023-04-27 18:39:00 · 105 阅读 · 0 评论 -
python+playwright 学习-58 Jenkins上使用 Pipeline 运行 playwright 自动化脚本
前言Dockerfile.focal可用于在 Docker 环境中运行 Playwright 脚本。这些镜像包括在 Docker 容器中运行浏览器所需的所有依赖项,还包括浏览器本身。playwright 在linux 系统上目前只支持Ubuntu 系统的部分版本,centos 和debian系统上是没法运行的。jenkins 环境准备需安装2个跟docker 相关的基本插件Docke...原创 2023-04-27 09:23:00 · 129 阅读 · 0 评论 -
python+playwright 学习-57 svg 元素拖拽
前言SVG英文全称为Scalable vector Graphics,意思为可缩放的矢量图,这种元素比较特殊,需要通过 name() 函数来进行定位。本篇讲下关于svg元素的拖拽相关操作。拖拽 svg 元素如图所示,svg下的circle元素是可以拖动的比如往右拖动 100 个像素, 那么cx的值由原来的cx="100"变成 cx="200"通过鼠标是可以实现拖拽操作的pla...原创 2023-04-26 21:38:00 · 116 阅读 · 0 评论 -
python+playwright 学习-56 svg 元素定位
前言SVG英文全称为Scalable vector Graphics,意思为可缩放的矢量图,这种元素比较特殊,需要通过 name() 函数来进行定位。svg 元素定位如下看到的svg 标签,就是svg元素用普通的标签定位,是无法定位的,如xpath的//svg只能通过 name() 函数来定位 //*[name()="svg"]页面上用多个svg元素如果页面上用多个svg元素...原创 2023-04-26 09:13:00 · 184 阅读 · 0 评论 -
python+playwright 学习-55 在docker 容器中运行playwright脚本
前言Dockerfile.focal可用于在 Docker 环境中运行 Playwright 脚本。这些镜像包括在 Docker 容器中运行浏览器所需的所有依赖项,还包括浏览器本身。playwright 在linux 系统上目前只支持Ubuntu 系统的部分版本,centos 和debian系统上是没法运行的。镜像查看所有可用的图像标签https://mcr.microsoft.com/...原创 2023-04-23 12:51:00 · 241 阅读 · 0 评论 -
python+playwright 学习-54 结合 gremlins.js 实现web 网页的monkey测试
前言在 Android 应用测试里面有个 mokey测试可以对app 做稳定性的测试,在app里面随机乱点发送一些事件,看app会不会异常。这种做法,也称为 Monkey测试 或 Fuzz 测试,在移动应用程序开发中非常常见。Gremlins.js 模拟随机用户操作:gremlins 单击窗口中的任意位置,在表格中输入随机数据,或者鼠标在页面上任意位置乱点,让 JavaScript 错误...原创 2023-04-20 11:14:00 · 193 阅读 · 0 评论 -
python+playwright 学习-53 模拟键盘操作-复制粘贴相关
前言playwright 可以模拟键盘操作,定位到元素使用press()方法press()方法 介绍locator.press ()方法聚焦所选元素并产生单个击键。它接受在键盘事件的keyboardEvent.key属性中发出的逻辑键名称:Backquote, Minus, Equal, Backslash, Backspace, Tab, Delete, Escape,ArrowDo...原创 2023-04-18 10:25:00 · 271 阅读 · 0 评论