【问题标题】:Find elements by xpath using regex使用正则表达式通过 xpath 查找元素
【发布时间】:2021-09-13 13:36:18
【问题描述】:

我正在尝试使用 selenium 通过 Xpaths 查找元素

我可以使用contains() 方法为所有这些 Xpath 创建规则吗

我的 Xpaths 列表:

//*[@id="jsc_c_10"]/span
//*[@id="jsc_c_11"]/span
//*[@id="jsc_c_4n"]/span
//*[@id="jsc_c_2o"]/span

我尝试了以下代码,但没有成功:

driver.find_element_by_xpath("//*[contains(@id,'jsc_c_*+')]")

【问题讨论】:

    标签: python selenium xpath


    【解决方案1】:
    driver.find_element_by_xpath("//*[starts-with(@id,'jsc_c_')]")
    

    xpath 不支持正则表达式,你可以使用starts-with方法代替

    Link xpath 支持的所有功能都可以在这个链接中看到

    【讨论】:

      【解决方案2】:

      Selenium that usage xpath v1.0. 不支持直接regex

      您可以使用find_elements 代替包含如下。

      list_of_elements = driver.find_elements_by_xpath("//*[contains(@id,'jsc_c_')]/span")
      

      并且可以像这样iterate它:

      for ele in list_of_elements:
          print(ele.text)
      

      请注意,ele 是一个网络元素,您可以执行 .text.click() 等操作。

      甚至首先尝试打印print(len(list_of_elements))这样的大小

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-11-27
        • 1970-01-01
        • 1970-01-01
        • 2020-05-03
        • 2015-01-10
        • 1970-01-01
        • 2015-05-21
        • 1970-01-01
        相关资源
        最近更新 更多