如何使用 Selenium 检查 text_to_be_present_in_xth_element

How to check for text_to_be_present_in_xth_element with Selenium

我想让 Selenium 等到特定文本出现在元素中。我知道元素的 XPath:

driver.find_elements(By.XPATH, ".//*[@class='sr-match-default__darts-leg']")

以上returns 5个WebElements的列表。我的重点是第四个元素。如何向 XPath 地址添加索引?目标是将所需的 XPath 引用插入到以下代码中:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

wait = WebDriverWait(driver, 300)
wait.until(EC.text_to_be_present_in_element((By.XPATH, ".//*[@class='sr-match-default__darts-leg']"), "Leg 1"))

请指教。谢谢

您可以将 xpath 包装在 () 中并像这样放置 index 4

(.//*[@class='sr-match-default__darts-leg'])[4]

请注意,由于我们已经给出了索引,因此理想情况下它应该 return 一个单独的网络元素。

建议使用

  1. driver.find_element(By.XPATH, "(.//*[@class='sr-match-default__darts-leg'])[4]") 不是 elements

  2. WebDriverWait(driver, 30).until(EC.text_to_be_present_in_element((By.XPATH, "(.//*[@class='sr-match-default__darts-leg'])[4]", "Leg 1"))