背景
工作上有些视频学习任务,一天到晚要看视频学习;
关键还不能倍速,连播,非要手动点击下一个,非常苦恼。还时不时还跳一个弹窗出来,不回答就不继续播放,挂机都不行。
技术选型
selenium
,还用说吗?妥妥的大哥大
PlayWright
,微软的新生儿
所以我选PlayWright
在Linux上安装edge
问题来了,为什么要装edge
,chrome
不香么?
但是有一个问题啊,通过chromedriver
调起来的是chromium
,chromium
默认不支持MP4封装h264编码的视频,默认只支持google自家的webm封装的VP9编码视频。
这不是要命,我最主要的需求就是看视频。
所以我们选择edge
1 | # 在这里看可以安装的https://packages.microsoft.com/yumrepos/edge/ |
开启浏览器
1 | const { chromium } = require('playwright'); |
通过XPath寻找dom
好多兄弟问,XPath怎么搞,好难算,好复杂
说实话兄弟,根本不用自己写啊。。。。
举个栗子:
直接复制就行了。。。
一些常用操作
1.聚焦input
并输入
1 | // 我这里使用id聚焦 |
2.点击按钮
1 | // 使用xpath |
3.等待某个dom节点渲染完成
1 | // 例如我这里等待一张图片渲染完成后获取这个图片 |
4.获取所有可匹配成功的dom
1 | // 在获取表格内所有列或者所有行时,尤为有效 |
5.浏览器后退
1 | await page.goBack() |
6.拦截网络请求并替换结果
在网络请求发起的页面,使用以下这个函数
1 | const forbidRequest = async (page) => { |
其他基本没啥了,跟着官网看文档就好了.