获取标签的元素的 xpath (selenium python)
xpath to get element a label is for (selenium python)
我正在使用 python 包 selenium 编写一个脚本,每周自动为自己设置约会。我最终想要的是能够单击 id="1103222339" 的按钮。我最初试过driver.find_element_by_id("1103222339").click()
,但我不能保证每次我运行这个脚本,我需要的约会都会对应这个ID。为解决此问题,我想查看包含指定我想要的约会时间和日期的文本的标签,然后以某种方式通过该标签检索 ID 以获取值。
我以前没有用过 XPath,如何通过文本找到标签对应的元素?
您可以构建基于时间定位目标 input
元素的 XPath 表达式,如下所示:
driver.find_element_by_xpath("//tr[.//label[contains(text(),'November 24, 2021 3:20 PM')]]//input").click()
这里当然可以根据自己的需要设置想要的文字了
我构建的 XPath 意味着:“找到 tr
元素,其中包含一个 label
元素,其中包含 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()
我正在使用 python 包 selenium 编写一个脚本,每周自动为自己设置约会。我最终想要的是能够单击 id="1103222339" 的按钮。我最初试过driver.find_element_by_id("1103222339").click()
,但我不能保证每次我运行这个脚本,我需要的约会都会对应这个ID。为解决此问题,我想查看包含指定我想要的约会时间和日期的文本的标签,然后以某种方式通过该标签检索 ID 以获取值。
我以前没有用过 XPath,如何通过文本找到标签对应的元素?
您可以构建基于时间定位目标 input
元素的 XPath 表达式,如下所示:
driver.find_element_by_xpath("//tr[.//label[contains(text(),'November 24, 2021 3:20 PM')]]//input").click()
这里当然可以根据自己的需要设置想要的文字了
我构建的 XPath 意味着:“找到 tr
元素,其中包含一个 label
元素,其中包含 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()