当前位置: 首页 > wzjs >正文

设计师常看的网站宣传软文

设计师常看的网站,宣传软文,虚拟主机 网站镜像,网站程序是如何开发的简介 Playwright 可以与网页对话框进行交互,例如警告(alert)、确认(confirm)、提示(prompt)以及卸载前确认(beforeunload confirmation)。对于打印对话框,请…

简介

Playwright 可以与网页对话框进行交互,例如警告(alert)、确认(confirm)、提示(prompt)以及卸载前确认(beforeunload  confirmation)。对于打印对话框,请参阅打印( Print)部分。

alert()、confirm()、prompt() 对话框

默认情况下,Playwright 会自动关闭对话框,因此您无需手动处理它们。但是,您可以在触发对话框的操作之前注册一个对话框处理程序,以便使用 dialog.accept() 或 dialog.dismiss() 方法来接受或关闭对话框。这样,您就可以根据测试需要控制对话框的行为,模拟用户的点击操作。

page.on("dialog", lambda dialog: dialog.accept())
page.get_by_role("button").click()

注意

您必须为 page.on("dialog") 监听器处理对话框。否则,您的操作(无论是 locator.click() 还是其他任何操作)将会停滞不前。这是因为 Web 中的对话框是模态的,因此会阻塞页面的进一步执行,直到对话框被处理完毕。这意味着,如果您没有为可能出现的对话框注册处理程序,那么触发对话框的操作将会等待对话框被处理后才能继续执行,这可能会导致测试脚本挂起或超时。

因此,下面的代码片段将永远无法解析:

page.on("dialog", lambda dialog: print(dialog.message))
page.get_by_role("button").click() # Will hang here

请注意
如果page.on("dialog")没有监听器,则所有对话框都将自动取消。

beforeunload 对话框

当以 run_before_unload=True 的参数调用 page.close() 方法时,页面会运行其卸载处理程序。这是 page.close()  方法不等待页面实际关闭的唯一情况,因为最终页面可能仍然保持打开状态。

您可以注册一个对话框处理程序来自行处理 beforeunload 对话框:

def handle_dialog(dialog):  assert dialog.type == 'beforeunload'  dialog.dismiss()  # 拒绝离开页面  page.on('dialog', lambda: handle_dialog)    
page.close(run_before_unload=True)  # 尝试关闭页面,并运行beforeunload处理程序

handle_dialog 函数会检查对话框的类型是否为 'beforeunload',并调用 dialog.dismiss() 方法来拒绝离开页面。在注册事件监听器时,使用 lambda 表达式,传递函数名。然后,调用 page.close(run_before_unload=True) 会尝试关闭页面,并在尝试关闭之前运行 beforeunload 对话框的处理程序。

打印对话框

为了验证是否通过  window.print 触发了打印对话框,您可以使用以下代码片段:

page.goto("<url>")  # 导航到目标网页  # 在页面上注入JavaScript代码,用于拦截print函数调用并等待  
page.evaluate("""  
(() => {  // 重写window.print函数,使其返回一个Promise,以便我们可以等待它  window.originalPrint = window.print;  // 保存原始的print函数  window.waitForPrintDialog = new Promise(resolve => {  window.print = function() {  // 当print被调用时,解决Promise,但不执行实际的打印操作  resolve();  // 可以选择调用原始的print函数,如果需要实际打印的话  // window.originalPrint();  };  });  
})()  
""")  # 点击触发打印的按钮  
page.get_by_text("Print it!").click()  # 等待打印对话框的Promise被解决,即等待print函数被调用  
page.wait_for_function("window.waitForPrintDialog")

这段代码将等待在点击按钮后打印对话框被打开。请确保在点击按钮之前/页面加载之后执行注入的脚本。

http://www.dtcms.com/wzjs/223973.html

相关文章:

  • 河北搜索引擎优化宁波seo资源
  • 政府的网站是哪家公司做的广州营销seo
  • 综合网站模板百度网页版浏览器
  • 沭阳城乡建设局网站网站建设制作免费
  • 湖南网站营销推广设计黑帽seo什么意思
  • 展示型网站建关键词林俊杰
  • seo实战密码第四版pdfseo课程培训课程
  • 哪里网站备案快如何自己做引流推广
  • 金融公司网站 html互联网产品营销策划方案
  • 做家纺网站哪家好网络广告公司
  • 监理工程师证查询网站友情链接发布网
  • gif网站素材百度seo排名优化软件
  • 在泰安市有做阿里巴巴网站的手机seo快速排名
  • 找个会做网站的 一起做网站百度站长平台账号购买
  • 成都营销策划公司排行榜企业seo培训
  • 珠海电子商务网站建设深圳知名seo公司
  • 外国网站建设营销传播
  • b2b网站一个人可以做吗如何推广微信公众号
  • 企业网站设计与实现品牌策划方案范文
  • 10m网站空间互联网公司排名
  • wordpress修改固定连接插件盐城seo营销
  • 莒县建设局官方网站河北百度推广
  • 网站如何做跳转app优化方案
  • 学校网站建设学生文明上网云搜索系统
  • 装饰网站建设公司淘宝关键词排名查询网站
  • 企业网站里面的qq咨询怎么做seo推广排名平台有哪些
  • 企业如何选择网站企业网站优化解决方案
  • wordpress get_the_content广州seo外包公司
  • 网站建设seo规范易思企业网站管理系统
  • 网站后台左侧导航折叠效果打不开淘宝seo搜索排名优化