如何等待元素包含属性 style="display:none;"使用 Selenium 和 Python

2023-12-02

使用 Selenium/Python 时,我需要等待/暂停直到:style="display:none;"显示为<div id="notification"..</div>


单击按钮后,将显示以下内容(加载中...)

<div id="notification" class="notification_info" style="opacity: 1; display: inline-block;">Loading...</div>

然后在网页中加载数据集后,加载中...消失(通过改变display:none),并且存在以下内容:

<div id="notification" class="notification_info" style="display: none;">Loading...</div>


这是如何完成的(检查或等待style="display: none;")?

因为有很多<divs>在页面中style=display,我需要等待id of the div,以及style display.


单击所需的按钮后,该元素的文本为Loading...变得可见。因此你会看到里面的元素HTML DOM as:

<div id="notification" class="notification_info" style="opacity: 1; display: inline-block;">Loading...</div>

加载完成后,元素的文本为Loading...通过改变变得不可见display的财产style属性为:

style="display: none;"

因此网页元素表示在DOM Tree as:

<div id="notification" class="notification_info" style="display: none;">Loading...</div>

Solution

Using Selenium等待文本为的元素Loading...变成style="display: none;"你需要诱导WebDriver等待为了invisibility_of_element()您可以使用以下任一方法定位策略:

  • Using CSS_SELECTOR:

    WebDriverWait(driver, 20).until(EC.invisibility_of_element((By.CSS_SELECTOR, "div.notification_info#notification")))
    
  • Using XPATH:

    WebDriverWait(driver, 20).until(EC.invisibility_of_element_located((By.XPATH, "//div[@class='notification_info' and @id='notification']")))
    
  • Note:您必须添加以下导入:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    

参考

您可以在以下位置找到一些相关的详细讨论:

  • 如何使用python点击带有selenium的锚元素?
  • Selenium invisibilityOf(element) 方法抛出 NoSuchElementException + WebDriverWait.ignoring(NoSuchElementException.class) 不起作用
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何等待元素包含属性 style="display:none;"使用 Selenium 和 Python 的相关文章

  • 如何在python 3.7中生成条形码

    我正在使用 python 3 7 为了生成条形码 我尝试使用安装 pyBarcode 库pip install pyBarcode 但它显示以下错误 找不到满足 pyBarcode 要求的版本 来自版本 找不到 pyBarcode 的匹配分
  • opencv水印周围的轮廓

    我想在图像中的水印周围画一个框 我已经提取了水印并找到了轮廓 但是 不会在水印周围绘制轮廓 轮廓是在我的整个图像上绘制的 请帮我提供正确的代码 轮廓坐标的输出为 array 0 0 0 634 450 634 450 0 dtype int
  • 用缺失的日期填充其他列 Nan Pandas DataFrame

    我实际上是从几个 Excel 文件中提取数据来监控我的每日卡路里摄入量 我设法使用列表理解来生成日期 我尝试使用合并或连接 但它不起作用 ValueError 您正在尝试合并对象和 float64 列 date list 2021 05 2
  • pyspark 数据框中的自定义排序

    是否有推荐的方法在 pyspark 中实现分类数据的自定义排序 我理想地寻找 pandas 分类数据类型提供的功能 因此 给定一个数据集Speed列 可能的选项是 Super Fast Fast Medium Slow 我想实现适合上下文的
  • Mac OS X 中文件系统的 Unicode 编码在 Python 中不正确?

    在 OS X 和 Python 中处理 Unicode 文件名有点困难 我试图在代码中稍后使用文件名作为正则表达式的输入 但文件名中使用的编码似乎与 sys getfilesystemencoding 告诉我的不同 采取以下代码 usr b
  • Python3.0 - 标记化和取消标记化

    我正在使用类似于以下简化脚本的内容来解析较大文件中的 python 片段 import io import tokenize src foo bar src bytes src encode src io BytesIO src src l
  • Pandas:如果单元格包含特定文本则删除行

    pandas 中的这段代码不起作用 如果该列包含提供的任何文本 数字 我希望它删除该行 目前 我只能在单元格与我的代码中传递的确切文本匹配时才能使其工作 因为它只删除显示 Fin 的单元格不是金融或金融 df2 df df Team Fin
  • 在 Django OAuth Toolkit 中安全创建新应用程序

    如何将 IsAdminUser 权限添加到 Django OAuth Toolkit 中的 o applications 视图 REST FRAMEWORK DEFAULT PERMISSION CLASSES rest framework
  • 如何使用文本相似性删除 pandas 数据框中相似(不重复)的行?

    我有数千个数据 这些数据可能相似也可能不相似 使用 python 的默认函数 drop duplicates 并没有真正的帮助 因为它们只检测相似的数据 例如 如果我的数据包含类似以下内容怎么办 嗨 早上好 嗨 早上好 Python 不会将
  • 结构差异 sudo() run('sudo 命令')

    我想知道函数之间有什么区别sudo 和函数run sudo u user smth 文档上有 sudo 在所有运行方式上都是相同的 除了它总是换行 调用 sudo 程序中的给定命令以提供超级用户 特权 但有几次 sudo cmd 提示我输入
  • Gspread如何复制sheet

    在 Stackoverflow 上进行谷歌搜索和搜索后 我想我找不到有关如何复制现有工作表 现有模板工作表 并将其保存到另一个工作表中的指南 根据文档 有重复表 https gspread readthedocs io en latest
  • Tensorflow 与 Keras 的兼容性

    我正在使用 Python 3 6 和 Tensorflow 2 0 并且有一些 Keras 代码 import keras from keras models import Sequential from keras layers impo
  • SMTP_SSL SSLError: [SSL: UNKNOWN_PROTOCOL] 未知协议 (_ssl.c:590)

    此问题与 smtplib 的 SMTP SSL 连接有关 当与 SMTP 无 ssl 连接时 它正在工作 在 SMTP SSL 中尝试相同的主机和端口时 出现错误 该错误仅基于主机 gmail 设置也工作正常 请检查下面的示例 如果 Out
  • Matplotlib 中 x 轴标签的频率和旋转

    我在下面编写了一个简单的脚本来使用 matplotlib 生成图形 我想将 x tick 频率从每月增加到每周并轮换标签 我不知道从哪里开始 x 轴频率 我的旋转线产生错误 TypeError set xticks got an unexp
  • Python:IndexError:修改代码后列表索引超出范围

    我的代码应该提供以下格式的输出 我尝试修改代码 但我破坏了它 import pandas as pd from bs4 import BeautifulSoup as bs from selenium import webdriver im
  • Python SSL X509:KEY_VALUES_MISMATCH

    Python HTTPS server from http server import HTTPServer SimpleHTTPRequestHandler import ssl https stackoverflow com a 408
  • 双击打开 ipython 笔记本

    相关文章 通过双击 osx 打开 ipython 笔记本 https stackoverflow com questions 16158893 open an ipython notebook via double click on osx
  • 从 pandas DataFrame 中删除少于 K 个连续 NaN

    我正在处理时间序列数据 我在从数据帧列中删除小于或等于阈值的连续 NaN 时遇到问题 我尝试查看一些链接 例如 标识连续 NaN 出现的位置以及计数 Pandas NaN 孔的游程长度 https stackoverflow com que
  • 多个对象以某种方式相互干扰[原始版本]

    我有一个神经网络 NN 当应用于单个数据集时 它可以完美地工作 但是 如果我想在一组数据上运行神经网络 然后创建一个新的神经网络实例以在不同的数据集 甚至再次同一组数据 上运行 那么新实例将产生完全错误的预测 例如 对 XOR 模式进行训练
  • 查找总和为给定数字的值组合的函数

    这个帖子查找提供的 Sum 值的组合 https stackoverflow com a 20194023 1561176呈现函数subsets with sum 它在数组中查找总和等于给定值的值的组合 但由于这个帖子已经有6年多了 我发这

随机推荐

  • 无法访问 Metro 应用中的资产文件

    我正在尝试读取一个文本文件 该文件作为 Metro 应用程序中的资产提供 如果将文件路径指定为 ms appx Assets file txt 我会收到访问被拒绝错误 显然我需要设置一些访问安装位置文件夹的功能 我尝试启用清单设计器中的所有
  • Visual Studio 安装和部署构建失败,没有错误

    我有一个设置和部署项目 在我们的构建服务器上 在摘要中报告以下内容 全部重建 25 成功 2 失败 0 跳过 我不知道失败的两个是什么 但我相信其中之一是 vdproj 项目 因为如果我在没有安装程序的情况下运行构建 则根本不会报告任何错误
  • 如何用PHP下载大文件?

    我花了一周的时间来找到这个问题的正确答案 Right 我的意思是绝对符合现有的网络标准 可靠且性能有效 最后 我找到了解决方案 我在 StackOverflow 上找到的所有内容 在 PHP 中可靠地下载大文件 如何通过PHP脚本下载大文件
  • 使用 Quartz.NET 3.0.3 和简单注入器进行构造函数注入操作方法

    我正在尝试在 Windows 服务中使用 Quartz Net v3 0 3 和简单注入器 我有一个作业类 我想在其下面注入一些依赖项 例如我的记录器 public class JobWorker IJob private ILogger
  • 向按钮添加彩色阴影

    我需要向具有 来自 zeplin 这些属性的按钮添加阴影 这就是设计 我试过这段代码
  • React 中生成器的调用次数超出预期

    我发现生成器似乎被调用两次的行为 下面是一个简单的代码 它从生成器获取一个数字并将其输出到控制台 它期望控制台输出 0 和 1 但实际上输出的是 0 和 2 import useState useEffect from react func
  • <%= 导轨 4 中有一个块

    我正在尝试在助手中使用块 但这给了我这个错误 SyntaxError syntax error unexpected rbout concat green title do to s erbout concat n erb 4254 syn
  • 大多数静态数据流的 CRC 计算

    背景 我有一段内存 1024字节 最后 1020 字节始终相同 前 4 个字节将发生变化 产品的序列号 我需要计算CRC 16 CCITT 0xFFFF 起始 0x1021 掩码 对于整个内存部分 CRC WHOLE 问题 是否可以仅计算前
  • 如何在 XAML 中绑定到静态属性?

    我试图将不同类的静态属性绑定到 TextBlock 的 Text 属性 并且可以使绑定正常工作 但是当静态属性的值发生更改时 Text 属性不会更新 我读过 我无法使用 INotifyPropertyChanged 因为该属性是静态的 并且
  • 导航推送新的根控制器

    我正在尝试将新的根控制器推送到导航堆栈 但使用侧面显示菜单 我的应用程序委托具有以下内容 welcomeViewController MyWelcomeViewController alloc initWithNibName MyWelco
  • ORACLE 中的利斯塔格

    我正在尝试使用 LISTAGG 来获取两列以上 SELECT deptname deptno LISTAGG ename WITHIN GROUP ORDER BY ename AS employees FROM emp GROUP BY
  • 在 $0 和 BASH_SOURCE 之间选择

    一个人如何选择 0 and BASH SOURCE 0 这段描述来自GNU对我帮助不大 BASH SOURCE An array variable whose members are the source filenames where t
  • 在 OCaml 中组合一列列表

    我想在 OCaml 中转置一个矩阵 不使用递归或任何类型的循环 例如 如果我有以下矩阵 1 2 3 4 我想要的输出 1 3 2 4 到目前为止我所做的是将原始矩阵分解为单独的列 function that separates into c
  • HTML5 是否使 Javascript 游戏更安全(更安全)?

    我知道 JavaScript 是一种极其不安全的持久游戏编程方式 例如 您在 RPG 中进行战斗计算 然后在获胜时通过链接到 PHP 页面来奖励 XP 该页面会将 XP 添加到数据库中 因为玩家可以制作自己的 javascript 来始终获
  • WPF 树数据模板取决于项目类型

    我有一个 MVVM WPF 应用程序 其中有一棵包含自引用数据的树 该数据通过分层转换器绑定到该树 如示例 http www telerik com help wpf radtreeview how to bind to self refe
  • Android WebView 与layer_type_software 不显示HTML5 画布内容

    自上次更新 Android WebView 以来 通过将 WebView 的图层类型设置为 View LAYER TYPE SOFTWARE 来禁用硬件加速时 带有 HTML5 画布的网页无法正确显示 这个问题有解决方法吗 当我省略以下 J
  • 构建 VSCode 和 Android Studio (Flutter) 的 gradle 时配置根项目“android”时出现问题

    今天开始学习Flutter 并成功下载了所有东西 但是当我运行我的应用程序时 调试器 两者VSCode and Android Studio 给我这个错误 Launching lib main dart on sdk gphone x86
  • 如何动态修改函数的本地命名空间?

    注意 这个问题假设 Python 2 7 3 我正在寻找一种合理的方法来动态修改函数的本地命名空间 最好以一种给函数体函数添加最少混乱的方式 我的想法是这样的 import os from namespace updater import
  • ggplot2时间序列数据在R中显示不稳定的线

    我想从此链接重现此图像 但我得到了这个奇怪的结果 这相当简单 我想从数据框中绘制时间序列 它不是 xts 类型的数据 这只是一个简单的数据框 日期已被识别为日期 不确定 为什么 ggplot 显示这种不稳定的线条而不是 geom line
  • 如何等待元素包含属性 style="display:none;"使用 Selenium 和 Python

    使用 Selenium Python 时 我需要等待 暂停直到 style display none 显示为 div div div gt 单击按钮后 将显示以下内容 加载中 div class notification info styl