首页 > 编程语言 > python+playwright 学习-70 一闪而过的提示消息如何定位

python+playwright 学习-70 一闪而过的提示消息如何定位

时间:2023-08-17 09:22:18浏览次数:52  
标签:playwright success python sync context 70 new page

前言

页面上一闪而过的提示语,一般出现1-3秒就会消失,这种消息框如何定位呢?

示例

如下操作成功的提示语

它过1-3秒就自动消失了,按下f12, 鼠标还没指上去就不见了,无法获取它的元素属性。

误区: 首先这不是标准的alert,所以不能用 dialog 事件监听(很多初学者分不清alert 和弹出消息框)

调试暂停

F12后点开源代码,然后点暂停按钮

这时候页面处于调试暂停状态了

再回到检测元素,鼠标指上去,就能看到元素属性了

代码示例

断言消息框内容,可以直接用expect 断言

from playwright.sync_api import sync_playwright, expect


with sync_playwright() as p:
    browser = p.chromium.launch(headless=False, slow_mo=2000)
    context = browser.new_context()
    page = context.new_page()
    page.goto('file:///C:/Users/dell/Desktop/a2/t.html')

    # 点击success按钮
    page.locator('.btn-success').click()

    # 断言
    expect(page.locator('.toast-message')).to_have_text("操作成功!")

    page.pause()

有些同学习惯于先获取内容,再用assert 断言也可以

from playwright.sync_api import sync_playwright, expect


with sync_playwright() as p:
    browser = p.chromium.launch(headless=False, slow_mo=2000)
    context = browser.new_context()
    page = context.new_page()
    page.goto('file:///C:/Users/dell/Desktop/a2/t.html')

    # 点击success按钮
    page.locator('.btn-success').click()

    # 获取一闪而过的消息框内容
    t = page.locator('.toast-message').inner_text()
    print(f"消息框内容: {t}")
    assert t == '操作成功!'

还有同学提到说如何判断消息框弹出来了, 用if判断元素is_visible() 即可

from playwright.sync_api import sync_playwright, expect


with sync_playwright() as p:
    browser = p.chromium.launch(headless=False, slow_mo=2000)
    context = browser.new_context()
    page = context.new_page()
    page.goto('file:///C:/Users/dell/Desktop/a2/t.html')

    # 点击success按钮
    page.locator('.btn-success').click()

    # 如何判断消息框弹出来了
    if page.locator('.toast-message').is_visible():
        print("消息框弹出来了。。。。")

    page.pause()

标签:playwright,success,python,sync,context,70,new,page
From: https://www.cnblogs.com/yoyoketang/p/17636715.html

相关文章

  • Python爬虫之scrapy框架入门
    特点:scrapy利用twisted的设计实现了非阻塞的异步操作。这相比于传统的阻塞式请求,极大的提高了CPU的使用率,以及爬取效率。配置简单,可以简单的通过设置一行代码实现复杂功能。可拓展,插件丰富,比如分布式scrapy+redis、爬虫可视化等插件。解析方便易用,scrapy封装了xpath等解析......
  • 二手天选4(12700h+4060)的一些测试
    R23单核屏幕这个是我4k屏幕的数据:自己加的2t固态跑分:天选自带硬盘跑分:......
  • python-GUI之tkinter
    常用的tkinter控件的列表:Label(标签):用于显示文本或图像。Button(按钮):用于触发操作,比如点击按钮执行某个功能。Entry(输入框):用于接收用户输入的文本。Text(文本框):用于显示和编辑多行文本。Checkbutton(复选框):允许用户从多个选项中选择一个或多个选项。Radiobutton(单选按钮):允许用......
  • 20230816python学习日志
    在初始化属性中的类#person_class.pyclassPerson:population=0#初始化属性,用于计数def__init__(self,myAge):self.age=myAgePerson.population+=1#计数器defget_population(self):returnPerson.population......
  • 20.python@property
    python@property目录python@property作用property()函数@property装饰器python的@property是python的一种装饰器,是用来修饰方法的。作用我们可以使用@property装饰器来创建只读属性,@property装饰器会将方法转换为相同名称的只读属性,可以与所定义的属性配合使用,这样可以防止......
  • Python 实现排序算法
    常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。冒泡排序冒泡排序(BubbleSort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复......
  • Python 与 PHP 项目对接
    在Web开发中,前后端分离已经成为一种趋势。前端使用JavaScript进行交互,后端则使用Python或PHP进行处理。当一个项目需要同时支持前端和后端时,就需要将两个部分进行对接。本文将介绍如何使用Python与PHP项目进行对接。HTTP协议首先,我们需要了解HTTP协议。HTTP(Hypertex......
  • 【Python-每日技巧】利用python进行文件上传
    有时候,需要上传文件到对方服务器,可以利用python实现在Python中,可以使用requests库来上传MultipartFile。以下是一个示例代码:importrequestsurl="http://example.com/upload"#替换为实际的上传接口地址#读取要上传的文件withopen("path/to/file.jpg","rb")asfi......
  • 5708: 逆序对 归并排序
    描述  给定 一个序列,求其逆序对的总数。所谓逆序对是指:序列a中存在两个元素a[i]和a[j],满足 i<j 且a[i]>a[j],则a[i]和a[j]为一个逆序对。  输入  第一行为正整数n(n<=100000)。第二行有n个正整数,最大不超过1000000。  输出  输出逆序对的总数。......
  • 深入探秘 Python 类的常用魔术方法
    魔术方法(MagicMethods),也称为特殊方法或双下划线方法,是Python中一类特殊命名的方法,其名称以双下划线__开头和结尾。这些方法在类的定义中具有特殊的用途,用于控制类的行为,与内置操作符和函数交互,以及实现一些特定的功能。魔术方法使得自定义的类可以模拟内置类型的行为,使其更加强......