首页 > 其他分享 >playwright使用:启动浏览器与多种运行方式

playwright使用:启动浏览器与多种运行方式

时间:2024-05-12 10:19:41浏览次数:11  
标签:playwright 浏览器 启动 sync False page browser

前言

在本文中,我们将介绍如何使用Playwright这一现代化的浏览器自动化工具来启动浏览器,并深入了解其运行方式。Playwright是一个功能强大的工具,可以帮助开发人员自动化测试、网页截图、信息提取等任务。它支持多种浏览器,包括Chrome、Firefox和WebKit。

启动浏览器

上一篇文章中,我们安装了playwright和各个浏览器的测试版本,所以我们可以直接启动浏览器,代码如下:

from playwright.sync_api import sync_playwright


with sync_playwright() as p:
    browser = p.chromium.launch(headless=False)          # 启动 chromium 浏览器
    page = browser.new_page()              # 打开一个标签页
    page.goto("https://www.baidu.com")     # 打开百度地址
    print(page.title())                    # 打印当前页面title
    browser.close()                        # 关闭浏览器对象

打印结果如下:

注:playwright默认是无头方式启动运行浏览器的,如果我们想要看到界面,需要查看浏览器界面,需要将headless设置为False

异步运行

Playwright 支持2种运行方式:同步和异步。如果项目使用asyncio,那我们应该使用 async API:

import asyncio
from playwright.async_api import async_playwright



async def main():
    async with async_playwright() as p:
        browser = await p.chromium.launch(headless=False)
        page = await browser.new_page()
        await page.goto("https://www.baidu.com")
        print(await page.title())
        await browser.close()

asyncio.run(main())

打印结果如下:

start stop运行方式

除了with方式运行之外,我们还可以使用start,stop来运行。代码如下:

from playwright.sync_api import sync_playwright

playwright = sync_playwright().start()

browser = playwright.chromium.launch(headless=False)
page = browser.new_page()
page.goto("https://www.baidu.com/")


browser.close()
playwright.stop()

等待

相对于selenium,playwright执行速度会更快,为了便于我们查看执行的过程,我们可以加上等待来减缓执行,但是与selenium不同,playwright通过slow_mo (单位是毫秒)减慢执行速度,它的作用范围是全局的,从启动浏览器到操作元素每个动作都会有等待间隔,方便在出现问题的时候看到页面操作情况。使用方法如下:

chromium.launch(headless=False, slow_mo=50)

示例代码如下:

from playwright.sync_api import sync_playwright


with sync_playwright() as p:
    browser = p.chromium.launch(headless=False, slow_mo=1000)
    page = browser.new_page()
    page.goto("https://www.baidu.com")
    print(page.title())
    page.fill('#kw', "theshy")
    page.click('#su')
    browser.close()

注:与selenium不同,playwright不再支持time.sleep(),而是使用page.wait_for_timeout()来实现等待,当我们调试时需要等待,即可使用该方法。

示例代码如下:

from playwright.sync_api import sync_playwright



with sync_playwright() as p:
    browser = p.chromium.launch(headless=False, slow_mo=1000)
    page = browser.new_page()
    page.goto("https://www.baidu.com")
    print(page.title())
    # 等待5秒
    page.wait_for_timeout(5000)
    page.fill('#kw', "theshy")
    page.click('#su')
    # 等待3秒 
    page.wait_for_timeout(3000)
    browser.close()

运行结果如下:

页面截图如下下图

总结

本文主要介绍了一些playwright的简单使用,playwright的使用与selenium有一些不同,我们需要注意不同点,比如playwright默认是无头模式运行以及等待的改变。下一篇文章我们将介绍playwright定位元素的方法。

标签:playwright,浏览器,启动,sync,False,page,browser
From: https://www.cnblogs.com/hogwarts/p/18187542

相关文章

  • 如何同时或者按顺序间隔启动多个程序
    首先,需要用到的这个工具:度娘网盘提取码:qwu2蓝奏云提取码:2r1z1、打开工具,切换到定时器模块,快捷键:Ctrl+3 2、新建一个定时器,我这里演示同时打开多个程序(比如同时启动多个QQ,或者多个微信等),那就把单次数量提高,如果想每次执行这个定时器里面的3个事件,那单次数量就是写3,我......
  • Playwright安装与Python集成:探索跨浏览器测试的奇妙世界
    前言web自动化测试是我们工作中的重要一环,随着Web应用程序和网站的复杂性不断增加,跨浏览器测试变得越来越必要。而Playwright作为一种新兴的跨浏览器测试工具,为开发人员提供了一种轻松愉快的方式来进行自动化测试。本文将带您深入探索Playwright的安装过程,并结合Python语言,揭示......
  • 分布式存储故障导致数据库无法启动故障处理---惜分飞
    联系:手机/微信(+8617813235971)QQ(107644445)标题:分布式存储故障导致数据库无法启动故障处理作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]国内xx医院使用了国外医疗行业龙头的pacs系统,由于是一个历史库,存放在分布式存储中,由于......
  • 应用模式启动
    与单作业模式类似,直接执行flinkrun-application命令$bin/flinkrun-application-tyarn-application-ccom.huft.flk117.demo.StreamSocketCntjob_jar/original-fk117-1.0-SNAPSHOT.jar查看web及yarnid2.在命令行中查看或取消作业。$bin/flinklist-tyarn-applic......
  • 启动软件输入密码
    #硬编码的正确密码的哈希值(这只是一个示例,你应该使用更安全的方法来存储和验证密码)$correctPasswordHash="cc0c306017c7d88cb92009d56e2e31c1d2e2a97d989dc5c27cb8f65d69e8aad7"#替换为实际密码的哈希值#读取用户输入的密码$userPassword=Read-Host"pleaseinputI......
  • 会话模式启动
    YARN的会话模式与独立集群略有不同,需要首先申请一个YARN会话(YARNSession)来启动Flink集群。1.后台启动yarn会话模式flink集群bin/yarn-session.sh-d-nmtest2.查看返回地址和yarnidyarn会自动分配集群随机一台主机和端口号JobManagerWebInterface:http://xxx1:38005fl......
  • 《最新出炉》系列入门篇-Python+Playwright自动化测试-46-鼠标滚轮操作
    1.简介有些网站为了节省流量和资源,提高加载效率,采用的是动态加载(懒加载)的,也就是当拖动页面右侧滚动条后会自动加载网页下面的内容,不拖动就不会加载的或者通过鼠标滚轮操作。2.wheel模拟鼠标滚动wheel模拟鼠标滚动,就是通过调度一个wheel事件。(滚轮事件如果不处理可能会导致滚动,......
  • 1 浏览器生成消息
    目录1生成http请求消息1生成http请求消息URI:统一资源标识符UniformResourceIdentifierURL:统一资源定位符UniformResourceLocatorhttp的基本思路http消息的格式由于每条请求消息中只能写1个URI,所以每次只能获取1个文件,如果需要获取多个文件,必须对每个文件......
  • Dawn Launcher Windows快捷启动工具 Maye是一款体积小巧、简单易用的快速启动工具 Luc
    DawnLauncherWindows快捷启动工具,帮助您整理杂乱无章的桌面,分门别类管理您的桌面快捷方式,让您的桌面保持干净整洁。支持关联文件夹(实时同步文件夹内容)、快速搜索、相对路径(便携路径)、扫描本机开始菜单、本地扫描本机Appx应用列表、添加网址并一键获取网址信息。Maye是一......
  • JAVA 启动常用命令
    nohupjava-jarxxx.jar&--运行jar文件ssh关闭也继续运行nohupjava-jar-Xms512m-Xmx1024mxxx.jar&--指定内存运行jar文件ssh关闭也继续运行nohupjava-jar-Xms512m-Xmx1024m&nohupjava-Dfile.encoding=utf-8-jar-Xms512m-Xmx1024m&以utf-8编码......