selenium - python - 通过内部 HTML 查找元素

selenium - python - find element by inner HTML

我想使用 selenium 和 python

获取以下 Web 元素
<td class="letterbreak first">default</td>

而且我想根据里面的HTML文字default找。我不能使用 class,因为还有其他元素使用相同的 class。我试过:

driver.find_element(By.XPATH,"//*[contains(@innerHTML,'default')]")

但是我得到了 NoSuchElementException

是否可以根据内HTML查找?如果可以,我该怎么做?

使用任一 xapth。

driver.find_element(By.XPATH,"//*[contains(text(),'default')]")

driver.find_element(By.XPATH,"//*[text()='default']")

为避免同步问题引入 WebDriverWait() 并等待 visibility_of_element_located() 和后续 xpath

WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//*[contains(text(),'default')]")))

您需要导入以下库。

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC