繁体   English   中英

xpath 获取元素 label 用于(硒 python)

[英]xpath to get element a label is for (selenium python)

我正在使用 python package selenium 编写一个脚本,该脚本将每周自动为自己设置约会。 我最终想要的是能够单击 id="1103222339" 的按钮。 我最初尝试driver.find_element_by_id("1103222339").click() ,但我不能保证每次我运行这个脚本时我需要的约会都会对应这个 ID。 为了解决这个问题,我想看看 label 有文本指定我想要的约会的时间和日期,然后以某种方式通过它检索 id 以获得价值。

在此处输入图像描述

我之前没有使用过 xpath,如何通过其文本找到 label 的元素?

您可以构建基于时间定位目标input元素的 XPath 表达式,如下所示:

driver.find_element_by_xpath("//tr[.//label[contains(text(),'November 24, 2021 3:20 PM')]]//input").click()

当然,您可以在此处根据需要设置所需的文本。
我构建的 XPath 的意思是:“找到其中包含label元素的tr元素,该元素包含November 24, 2021 3:20 PM'文本。所以在这个tr中找到一个input元素。”
这就是您在这里所需要的。

要单击<input>按钮元素,您不能使用id="1103222339" ,因为它是动态生成的,并且每次访问应用程序时都会更改。

要单击元素,您可以使用以下任一定位器策略

  • 使用css_selector

     driver.find_element(By.CSS_SELECTOR, "a.StrongText[for]").click()
  • 使用xpath

     driver.find_element(By.XPATH, "//label[@for and @class='StrongText'][contains(., 'November 24, 2021 3:20 PM')]").click()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM