在 Selenium for Python 中,如何获取元素的属性而不是属性?

2023-12-11

根据文档,获取属性实际上返回属性而不是属性,除非该属性不存在,在这种情况下它会回退到属性。

获取属性将始终归还财产。

有没有办法始终获取该属性?我觉得奇怪的是,名为“get_attribute”的函数会优先考虑属性值而不是属性值。


获取属性(属性名称)

获取属性(属性名称)得到给定的attribute or property的元素。

此方法将首先尝试返回具有给定名称的属性的值。如果具有该名称的属性不存在,则返回该属性的值attribute同名。如果没有attribute用这个名字,None被返回。

被认为是真实的值,即等于true or false,作为布尔值返回。所有其他非None值以字符串形式返回。对于不存在的属性或特性,None被返回。

  • Args:

    attribute_name - Name of the attribute/property to retrieve.
    
  • Example:

    # Check if the "active" CSS class is applied to an element.
    is_active = "active" in target_element.get_attribute("class")   
    

获取属性(属性名称)

获取属性(属性名称)获取元素的给定属性。

  • Args:

    property_name - Name of the property to retrieve.
    
  • Example:

    text_length = target_element.get_property("text_length")
    

听起来还是很相似吗?参见下文 ...


属性和特性

当浏览器加载页面时,parsesHTML 并从中生成 DOM 对象。对于元素节点,大多数标准 HTML 属性会自动成为 DOM 对象的属性。

例如,如果标签是:

<body id="page">

那么 DOM 对象有body.id="page".

Note:属性-属性映射不是一对一的!


HTML 属性

在 HTML 中,标签可能具有属性。当浏览器解析 HTML 为标签创建 DOM 对象时,它会识别标准属性并从中创建 DOM 属性。

因此,当元素具有 id 或其他标准属性时,就会创建相应的属性。但如果该属性是非标准的,则不会发生这种情况。

Note:一个元素的标准属性对于另一个元素可能是未知的。例如,type是标准属性<input>标签,但不适合<body>标签。标准属性在相应元素类的规范中进行了描述。

因此,如果一个属性是非标准的,那么它就不会有 DOM 属性。在这种情况下,可以使用以下方法访问所有属性:

  • elem.hasAttribute(name): 检查是否存在。
  • elem.getAttribute(name): 获取值。
  • elem.setAttribute(name, value): 设置值。
  • elem.removeAttribute(name): 删除该属性。

读取非标准属性的示例:

<body something="non-standard">
  <script>
    alert(document.body.getAttribute('something')); // non-standard
  </script>
</body>

属性-属性同步

当标准属性更改时,相应的属性会自动更新,并且(有一些例外)反之亦然。但也有例外的情况,例如input.value仅同步来自attribute-> 到property,但没有回来。这feature实际上很有用,因为用户可能会修改值,然后如果我们想从 HTML 中恢复“原始”值,就在属性中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Selenium for Python 中,如何获取元素的属性而不是属性? 的相关文章

随机推荐

  • Tensorflow 中的向量移位(滚动)

    假设我们确实想使用 Keras TensorFlow 处理图像 或 ndim 向量 为了进行奇特的正则化 我们希望将每个输入向左移动随机数量的位置 溢出的部分重新出现在右侧 如何查看和解决 1 TensorFlow 的 numpy roll
  • 在输出四开本中显示块选项

    有没有办法在输出中包含块选项 例如 在这种情况下 title Untitled format html editor visual r code fold true label example 1 1 如何获得 code fold true
  • Java 的 UNIX 套接字实现? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我意识到 由于 UNIX 套接字是特定于平台的 因此必须涉及一些非 Java 代码 具体来说 我们有兴趣使用 JDBC 连接到仅启用了 UNIX 域
  • 无法理解左值的错误条件

    我是编程初学者 正在尝试一些组合 include
  • 默认导入的 Jest 模拟异步函数

    我试图模拟一个作为默认导出导出的异步函数 但我得到的只是类型错误 无法读取未定义的属性 then 我想嘲笑的是配置文件 const configureEnvironment async nativeConfig gt return awai
  • IllegalAnnotationsException SetMultimap 是一个接口,JAXB 无法处理接口

    我有以下代码 private SetMultimap
  • 模板化派生类时访问基成员数据错误

    我对奇怪的重复模板遇到以下问题 当我尝试访问 CRTP 基类的数据成员时出现问题 template
  • 使用 C++ 中的 NDK 更新 Android UI

    我的问题与这篇文章直接相关 https groups google com forum topic android ndk 291sBdkITyI 基本上 我有一个用 C 编写的应用程序 使用 NDK 编译 具有基本的 Android 活动
  • 在外部网站上使用 Inappbrowser 自动登录?

    我已经使用 Phonegap Build 构建了一个本机应用程序 有没有办法在外部网站的 webview 中自动登录 嵌入 inappbrowser 应用程序启动 然后用户将重定向到网站进行登录 但用户必须一次又一次地输入用户名和密码 是否
  • 将值写入用户窗体中的文本框 - VBA

    我正在尝试在放置在用户窗体上的文本框中动态写入一个值 这是我的代码 我在最后一行收到错误 它说需要对象 Sub Userform1 Display TotalSelected 0 With Sheets Main Ent ListBox F
  • 为什么 jQuery ajax 调用仅在我在 Chrome 中调试时才有效?

    我有一个来自表单提交的简单 ajax 调用 它在我调试时有效 即弹出警报 但在运行时它不起作用 这对我来说似乎有点神秘 function signUpForm submit function var request ajax url php
  • 根据谷歌电子表格中的单元格颜色更改单元格值

    我一直在寻找一种根据另一种单元格颜色更改单元格值的方法 例如 如果单元格颜色为红色 则为 文本 有没有办法做到这一点 我知道有一种方法可以根据单元格值更改单元格颜色 但我想要相反的方法 有人知道吗 无论是脚本还是公式 谷歌应用程序脚本中有类
  • 气流可以在不重新启动调度程序的情况下加载 dags 文件吗

    就我而言 我在 dags 路径下编写了一个 dag 文件 启动airflow调度程序后 成功加载dag文件 但是 更改 dag 文件后 无法加载 dag 文件 有没有建议加载 dag 文件而不重新启动调度程序 您的 DAG 应根据调度程序心
  • 无法查看从 Subversion 存储库中删除的文件的内容

    不久前我从 Subversion 存储库中删除了一个文件 现在我想看看它的内容 我确定该文件在修订版 68 中已被删除 因此我尝试了以下操作 svn cat r 67 path to file 从项目根目录 svn 告诉我svn E1550
  • MySqli:可以创建数据库吗? [关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 我一直在筛选 MySQLi 文档 据我所知 我无法使用 PHP 和 MySQLi 创建数
  • 在 Webkit .NET 中打开本地文件

    由于某种原因 简单的 WebKitBrowser1 Navigate localfilehere 不起作用 我尝试将 file 添加到 URL 但这也不起作用 这看起来很荒谬 但是这个功能真的不存在吗 看来您输入了错误的网址 你可以通过以下
  • 嵌套相对定位的div需要有100%的高度

    我试图在这里获取嵌套的 div canvas 白色区域 http osf Fivetoolsoftware com填满 100 的空白空间 这是 HTML
  • 在服务器中创建文件后使用 jQuery 下载文件

    当我单击客户端上的按钮时 我想使用 AJAX 在服务器端调用公共静态 Web 方法 静态方法将创建适当的文件 创建文件后 我需要将其下载到客户端桌面 我找到了John Culvinar 的 jquery 文件下载插件但到目前为止还未能实施
  • 语句和关键字有什么区别?

    After calling return一份声明 这是在评论中向我提出的 return不是一个语句 它是开始 return 语句的关键字 有什么区别一份声明 and 开始语句的关键字 句子和句子开头的名词有什么区别 return是一个关键字
  • 在 Selenium for Python 中,如何获取元素的属性而不是属性?

    根据文档 获取属性实际上返回属性而不是属性 除非该属性不存在 在这种情况下它会回退到属性 获取属性将始终归还财产 有没有办法始终获取该属性 我觉得奇怪的是 名为 get attribute 的函数会优先考虑属性值而不是属性值 获取属性 属性