写在前面
好久没写playwright
的相关内容了,但最近用的还是挺多的,有些常见的问题,决定还是写下来。
内网安装
我所在的公司内网是不联网的,只有一个npm私有源
,并且上游源是需要通过审批才能更新的。
说人话就是,有的包有,有的包没有,没有的包也没办法从上游源拉取。
幸运的是,有playwright
的低版本。
不幸的是,安装过程中需要安装若干浏览器内核,在内网是无法下载的。
不过更幸运的是,在掘金随手点开的一篇文章,看到有人提到了这个。
对作者表示感谢。
这里引用一下。
在可以进行外网访问的电脑上,随便新建一个文件夹
npm i @playwright/test -D
如果你像我一样,是有版本限制的,请下载对应版本号的包,例如我这里用
1.24.3
npm i @playwright/test@1.24.3 -D
再
npx playwright@1.24.3 install
访问
C:\Users\用户名\AppData\Local\ms-playwright
MAC地址为
/Users/xingwu/Library/Caches/ms-playwrigh
压缩,然后到内网电脑的相同地址解压,再
npm install plawright@1.24.3
即可
官方文档的地址
操作iframe内的dom
先找到iframe
的id,再通过iframe
找到对应的dom
1 | const iframe = page.frameLocator('#my-iframe') |
获取dom
通过locator
获取.elementHandles()
1 | const elements = await page.locator('tr', { has: page.locator('text=' + text), class: 'towntr' }).elementHandles(); |
某些情况下输入框无法输入
本来对于输入框,应该使用page.fill()
去输入
但是总有一些奇奇怪怪的情况,无法输入
对于这种情况,我们可以通过page.key
去操作键盘输入
例如我要输入账号密码
1 | const account = '' |