你每天还在人工填防疫表?教你如何利用playwright来自动填写防疫表等问卷

发布于:2022-12-06 ⋅ 阅读:(438) ⋅ 点赞:(0)

你每天还在人工填防疫表?教你如何利用playwright来自动填表等问卷

playwright的强大荣光

playwright可以让我们对浏览器的操作自动化,其实就类似Excel的录制宏。针对很多场景有很简单直接的解决方案。比如填写问卷。

背景

疫情以来,填防疫表成了很多单位每天必做的工作。有没有办法可以让程序根据我们提供的信息自动填写?其实是可以的,因为多数人每天的情况是差不多的,也就是信息一致,所以多数情况可以自动填写,特殊情况可以稍微修改代码参数,所以效率是非常高的。
最核心的依托工具就是playwright。有了playwright,可以很好实现自动化。网上的其他教程太复杂了,个性化太强,对人的技术要求太高,我这个方法适用编程基础基本为零的对象。

#须要提前安装好playwright,这个怎么按照网上有教程,这里不赘述了。直接上代码(以下以麦客问卷网址为例)

具体的代码

from playwright.sync_api import Playwright, sync_playwright, expect
import datetime
def run(playwright: Playwright) -> None:
browser = playwright.chromium.launch(headless=False)
context = browser.new_context()
# Open new page
page = context.new_page()

# Go to 麦客问卷网址
page.goto("麦客问卷网址")

# Click text=请选择
page.locator("text=请选择").click()

# Click li[role="option"]:has-text("所在部门")
page.locator("li[role=\"option\"]:has-text(\"所在部门\")").click()


# Fill input[name="n"]
page.locator("input[name=\"n\"]").fill("姓名")

# Click li[role="radio"]:has-text("其他")
page.locator("li[role=\"radio\"]:has-text(\"其他\")").click()

# Click [id="\城市"] > .fb_componentBody > .fbc_content > ul > li > .bb-radio >> nth=0
page.locator("[id=\"\\城市\"] > .fb_componentBody > .fbc_content > ul > li > .bb-radio").first.click()

# Click text=没有有(C) >> span[role="radio"] >> nth=0
page.locator("text=没有有(C) >> span[role=\"radio\"]").first.click()


#Click text=提交
page.locator("text=提交").click()

# ---------------------
context.close()
browser.close()
with sync_playwright() as playwright:
run(playwright)

以上的代码涉及的问题有删减,无关紧要。因为有playwright,多少问题都可以录制代码和答案。
如有问题的,可以留言。


网站公告

今日签到

点亮在社区的每一天
去签到