首页 > 其他分享 >playwright中处理web页面的alert、confirm、prompt弹框

playwright中处理web页面的alert、confirm、prompt弹框

时间:2024-08-26 21:23:51浏览次数:8  
标签:web playwright prompt confirm await 弹框 dialog async page

在selenium中,自动化测试经常会遇到各种弹框:alert、confirm、prompt。这些都是正常的业务中会遇到的情况。所以我们在学习playwright框架时,这些情况也是必不可免的。今天就给大家分享一下playwright框架中对这三种弹框的处理。

首先了解一下这三种弹框的区别:

alert:只有确定键。比如一些报错信息。

confirm:确认信息,可以进行取消操作,也可以点击确定进行接受操作。比如删除操作时,弹出的弹框可以有取消和确认操作。 

prompt:需要输入信息的弹框,比如常见的登录框。

import asyncio
from playwright.async_api import async_playwright


async def handle_dialogs(page):
    # Alert 弹框
    page.on("dialog", lambda dialog: dialog.accept())
    await page.evaluate("alert('这是一个 Alert 弹框')")

    # Confirm 弹框
    page.on("dialog", lambda dialog: dialog.accept() if dialog.type == "confirm" else dialog.dismiss())
    await page.evaluate("confirm('这是一个 Confirm 弹框')")

    # Prompt 弹框
    page.on("dialog", lambda dialog: dialog.accept('输入的内容') if dialog.type == "prompt" else dialog.dismiss())
    await page.evaluate("prompt('这是一个 Prompt 弹框')")

async def main():
    async with async_playwright() as p:
        browser = await p.chromium.launch()
        page = await browser.new_page()
        await handle_dialogs(page)
        await browser.close()

asyncio.run(main())

在上述代码中,首先定义了一个handle_dialogs函数来处理三种不同类型的弹框。对于alert弹框,直接接受;对于confirm弹框,可以根据需要选择接受或拒绝;对于prompt弹框,可以传入一个自定义的输入内容来接受弹框。最后在main函数中启动浏览器并调用handle_dialogs函数来触发弹框。

标签:web,playwright,prompt,confirm,await,弹框,dialog,async,page
From: https://blog.csdn.net/m0_58552717/article/details/141571979

相关文章

  • 从主流技术架构视角剖析 Java Web 项目的性能测试策略与挑战
    随着互联网应用的不断发展,JavaWeb项目在企业级应用中占据了重要地位。然而,如何在复杂的技术架构下,确保项目的高性能和稳定性,成为了每个开发与测试团队无法回避的难题。今天,我们将从主流技术架构的视角,深度剖析JavaWeb项目的性能测试策略与面临的挑战,为你揭开性能优化的神......
  • Request processing failed:MyBatisSystemException 黑马web开发课程P152中可能出现的
    该异常的最后一句,通过翻译,大概是:   [dispatcherServlet]:servlet.service()forservlet[dispatcherServlet]在路径[]的上下文中抛出异常[请求处理失败:MyBatisSystemException]    经过对代码的检查,发现controller,sevice,dao层业务逻辑都没有问题dao层的map......
  • SwapPrompt(论文解读): Test-Time Prompt Adaptation for Vision-Language Models
    2023(NeuralIPS)摘要测试自适应(TTA)是无监督域自适应(UDA)中一种特殊且实用的设置,它允许源域中的预训练模型去适应另一个目标域中的未标记测试数据。为了避免计算密集型的骨干网络微调过程,因此利用预训练视觉语言模型(例CLIP、CoOp)zero-shot的泛化潜力,仅对未见测试域的运行时......
  • (论文解读)Domain Adaptation via Prompt Learning
    摘要无监督域适应(UDA)旨在将从带有标签的源域数据中学习到的模型适应到未标注的目标域数据集。现有的UDA方法通过对齐源域和目标域特征空间来学习领域不变特征。这种对齐是通过约束实现的,例如统计差异最小化或对抗学习。然而,这些约束会导致语义特征结构的扭曲和类别判别性......
  • 论文解读Multi-Prompt Alignment for Multi-Source Unsupervised Domain Adaptation
    Multi-PromptAlignmentforMulti-SourceUnsupervisedDomainAdaptationNeurlIPS2023摘要大多数现有的无监督域适应(UDA)方法依赖于共享网络来提取领域不变特征。无论如何,当面对多个源域时,优化这样的网络涉及更新整个网络的参数,这样既昂贵又有挑战性,特别是与最小最大......
  • 网站提示500.13 服务器错误:Web 服务器太忙怎么办
    当网站提示 500.13InternalServerError 并指出“Web服务器太忙”时,这通常意味着IIS(InternetInformationServices)服务器的负载过高,无法处理当前的请求。这种情况通常是由于服务器资源不足(如CPU或内存)、应用程序性能问题或配置不当等问题引起的。以下是解决 500.13......
  • 同源政策:增强Web安全但引发跨域请求的根源
    同源政策保证了浏览器的安全性的同时,也导致了跨域的产生同源策略是一个重要的安全策略,它用于限制一个origin的文档或者它加载的脚本如何能与另一个源的资源进行交互。它能帮助阻隔恶意文档,减少可能被攻击的媒介。同源:协议、域名、接口同时相同同源政策的作用:限制了当前域......
  • 【免费】springboot共享汽车管理系统|毕业设计|Javaweb项目
    收藏点赞不迷路 关注作者有好处编号:springboot118springboot共享汽车管理系统开发语言:Java数据库:MySQL技术:Spring+SpringMVC+MyBatis工具:IDEA/Ecilpse、Navicat、Maven1.系统展示2.万字文档展示第5章系统详细设计5.1管理员模块的实现5.1.1用户信息管理共享......
  • 【免费】springboot汽车资讯网站|毕业设计|Javaweb项目
    收藏点赞不迷路 关注作者有好处编号:springboot125springboot汽车资讯网站开发语言:Java数据库:MySQL技术:Spring+SpringMVC+MyBatis工具:IDEA/Ecilpse、Navicat、Maven1.系统展示2.万字文档展示第5章系统详细设计5.1管理员模块的实现5.1.1用户信息管理汽车资讯......
  • Web API 学习笔记 第四弹
    1.时间戳获取时间戳的方法①date.getTime()②+newDate()2.定时器console.log(111)setTimeout(()=>{console.log(222)},1000)console.log(333)console.log(111)setTimeout(()=>{console.log(222)},0)console.log(333)这两段代码打印结果分......