首页 > 解决方案 > selenium - python - 通过内部 HTML 查找元素

问题描述

我想使用 selenium 和 python 获取以下 Web 元素

<td class="letterbreak first">default</td>

我想根据内部 HTML 文本找到它default。我不能使用这个类,因为有其他元素使用同一个类。我努力了:

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

但我得到一个NoSuchElementException.

是否可以根据innerHTML找到?如果是这样,我该怎么做?

标签: python-3.xseleniumselenium-webdriverxpathwebdriverwait

解决方案


使用任一 xapth。

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

或者

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

为了避免同步问题,induced WebDriverWait() and wait for visibility_of_element_located() and followingxpath

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

推荐阅读