playwright安装使用(ITC系统)

如何在iTC上的使用Playwright

Playwright是一个强大的Python库,仅用一个API即可自动执行Chromium、Firefox、WebKit等主流浏览器自动化操作,并同时支持以无头模式、有头模式运行。

浏览器的无头模式与有头模式的区别在于:在无头模式下,浏览器UI界面不会被打开,只存在进程下;而在有头模式,会打开浏览器执行一系列的动作。

playwright使用步骤如下:

  • 安装
  1. 安装playwright库(注意:playwright对python版本有要求,必须为3.7+)

    pip install playwright
  2. 安装浏览器驱动文件(安装过程稍微有点慢)

    python -m playwright install
  • 录制
  1. 使用Playwright无需写一行代码,我们只需手动操作浏览器,它会录制我们的操作,然后自动生成代码脚本。

    python -m playwright codegen --target python -o 'my.py' -b chromium https://10.137.46.32:8080

    上面命令代表的含义是,使用chrom浏览器打开iTC网址,然后将录制生成的代码保存到my.py的文件中。
  • 代码分析
  1. 使用playwright录制iTC网址的脚本执行会出现不成功的情况,主要因为iTC网站使用的是iframe框架写的源码。针对iframe框架,需要对代码进行改写。比如在定位iframe下的frame元素时,需要为其添加content_frame()方法。例如:

    frame_top=page.query_selector('#topFrame').content_frame()

    只有使用content_frame()方法之后才可以定位到frame页面元素。
  2. 执行playwright代码过程中,由于执行速度过快,导致页面元素还未挂载至页面DOM中,最终会报错,处理办法可以分为两步:使用wait_for_selector(selector,*kwargs)方法,第一个参数为选择的页面元素,后面的参数中可以为选择元素的状态,比如state='attached',代表等待页面元素附着到DOM中在进行操作;第二步可以减缓执行操作速度playwright.chromium.lanch(headless=False,slow_mo=500),slow_mo可以设置代码执行速度,单位为毫秒。
  3. 在运维平台集成自动化工具中,需要前后端结合执行,此时需要将浏览器设置为无头模式,以进程的方式在后台运行。此时需要在代码中进行设置playwright.chromium.lanch(headless=True),务必设置为无头模式,否则后端接口调用执行脚本会执行报错。
posted @ 2022-03-25 10:42  zchang  阅读(648)  评论(0)    收藏  举报