当前位置: 首页 > 知识库问答 >
问题:

有没有一种方法可以在Python Selenium中通过属性找到元素?

阳文轩
2023-03-14

我得到了如下html代码片段:

<input type="text" node-type="searchInput" autocomplete="off" value="" class="W_input" name="14235541231062">

该元素在html中唯一唯一的标识是属性node type=“searchInput”,因此我想使用类似以下的Python selenium方法来定位它:

search_elem = driver.find_element_by_xxx("node-type","searchInput") # maybe?

我已经查看了selenium(python)文档以查找元素,但没有找到如何通过节点类型attr来定位此元素的线索。在python selenium中是否有明确的方法来定位这个元素?

共有3个答案

晏阳飙
2023-03-14

以下是您可以使用的方法:

save_items = []

for item in driver.find_elements_by_tag_name("input"):
    # Get class
    item_class = item.get_attribute("class")

    # Get name:
    item_name = item.get_attribute("name")

    # And so on...


    # Check for a match
    if item_class == "W_input" and item_name == "14235541231062":
        # Do your operation (or add to a list)
        save_items.append(item)

水铭晨
2023-03-14

尽管这个问题很古老,但我相信它仍然非常相关。您可以使用简单的css选择器,并且语法是与jquery或本机浏览器支持类似的标准javascript。

驱动程序。通过css选择器查找元素('span.className[attrName=“attrValue”]”)

示例:驱动程序。通过css选择器查找元素('span.blueColor[shape=“circle”]”)

拓拔意
2023-03-14

您可以通过xpath获取它,并检查节点类型属性值:

driver.find_element_by_xpath('//input[@node-type="searchInput"]')
 类似资料:
  • 问题内容: 我有一个这样的html代码段: html中此元素的唯一唯一标识是attribute ,因此我想使用 某种 Pythonselenium 方法 来定位它,如下所示: 我已经检查了selenium(python)文档以查找元素, 但是没有获得关于如何通过attr 定位此elem的线索。有没有在pythonselenium中找到该元素的明确方法? 问题答案: 您可以 通过xpath 获取它并

  • 问题内容: 现在我正在做: 有没有更有效的方法直接从Find(或其他搜索功能)中获取带有用户名的slice,而没有struct和range循环? 问题答案: MongoDB的结果始终是文档列表。因此,如果要获取值列表,则必须像以前一样手动将其转换。 使用自定义类型(源自) 另外请注意,如果您要创建自己的类型(从派生),则可以覆盖其取消编组逻辑,并仅从文档中“提取” 。 它看起来像这样: 然后将用户

  • 问题内容: 我们正在使用 PropertyPlaceholderConfigurer 在我们的Spring配置中使用java属性(此处有详细信息) 例如: 我们想添加一个附加属性,但是要有一个分布式系统,现有实例都可以使用默认值。通过在Spring config中为未定义覆盖属性值的默认值指示默认值,是否有办法避免更新所有属性文件? 问题答案: 您是否正在寻找此处记录的PropertyOverri

  • 问题内容: 我正在寻找类似的东西: 我需要使用JS获取元素的innerHTML(要在Selenium WebDriver / Java中使用它,因为WebDriver本身无法找到它),但是如何? 我可以使用ID属性,但并非所有元素都具有ID属性。 [固定] 我正在使用jsoup在Java中完成它。这符合我的需求。 问题答案: 您可以使用: 计算XPath表达式字符串,并在可能的情况下返回指定类型的

  • 我正在用SpringBoot构建一个应用程序。我有一个存储库,我通过以下方式从方法名称创建查询: 这样的查询可以工作,方法调用的结果是具有该名称的用户。在Spring Boot中是否可以按名称创建查询,其中输入是名称列表,输出是用户列表,其中每个用户至少对应于列表中的一个名称?例如: 我也试过这样的方法,但是行不通。

  • 问题内容: 我只想在编译时在Java类中使用maven占位符,以减少重复。 像这样: pom.xml SomeVersion.java 问题答案: 只需在src / main / resources中创建具有以下内容的文件app.properties 然后像这样启用Maven过滤 就是这样-在应用程序代码中只需读取属性文件 并提供这样的方法