前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python+playwright 学习-65多线程同时打开多个浏览器不同账号操作

python+playwright 学习-65多线程同时打开多个浏览器不同账号操作

作者头像
上海-悠悠
发布2023-08-22 11:26:52
1K0
发布2023-08-22 11:26:52
举报
文章被收录于专栏:从零开始学自动化测试

前言

最近用小伙伴提到多线程同时操作多个浏览器,每个浏览器用不同账号登录的需求。

多线程操作

以下是2个账号同时打开2个浏览器操作的示例

代码语言:javascript
复制
from playwright.sync_api import sync_playwright
from threading import Thread

def do_some_thing(username, password):
    playwright = sync_playwright().start()
    browser = playwright.chromium.launch(headless=False)
    context = browser.new_context()
    page = context.new_page()
    page.goto("http://127.0.0.1/login.html")
    page.get_by_placeholder("请输入用户名").fill(username)
    page.get_by_placeholder("请输入密码").fill(password)
    page.get_by_role("button", name="立即登录 >").click()
    # do ....
    context.close()
    browser.close()

users = [
    ["yoyo", "123456**"],
    ["yoyo2", "123456**"]
]

# 多线程,2个账号同时操作
for user in users:
    thread = Thread(target=do_some_thing, args=user)
    thread.start()

非无痕模式多线程

launch_persistent_context 启动的时候,如果需要多个账号同时保持登录,需设置不同的user_data_dir 用户数据目录,让用户账号数据隔离。

代码语言:javascript
复制
from playwright.sync_api import sync_playwright
from threading import Thread

def do_some_thing(username, password):

    p = sync_playwright().start()
    browser = p.chromium.launch_persistent_context(
        # 指定本机用户缓存地址
        user_data_dir=f"D:\chrome_userx\{username}",
        # 接收下载事件
        accept_downloads=True,
        # 设置 GUI 模式
        headless=False,
        bypass_csp=True,
        slow_mo=1000
    )
    page = browser.pages[0]
    page.goto("http://127.0.0.1/login.html")
    page.get_by_placeholder("请输入用户名").fill(username)
    page.get_by_placeholder("请输入密码").fill(password)
    page.get_by_role("button", name="立即登录 >").click()
    # do ....

    browser.close()

users = [
    ["yoyo", "123456**"],
    ["yoyo2", "123456**"]
]

# 多线程,2个账号同时操作
for user in users:
    thread = Thread(target=do_some_thing, args=user)
    thread.start()
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-05-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 从零开始学自动化测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 多线程操作
  • 非无痕模式多线程
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档