Selenium 无法按类名查找元素

Selenium Not Able to Find Elements By ClassName

<table class="sc-fAEnHe ePMtc">
<tbody>
<tr class="sc-fAEnHe ePMtc">
<td classs"sc-jEECVv IBUtl">
</td>
</tr>

当我通过 class 使用 Selenium 的 Find 元素时,它能够找到该元素,我什至尝试用 space (在 e 和 r 或 v 和 I 之后)替换“.”、“-”和“_”,但没有用。 我使用了下面的代码

try:
    match_history_table = WebDriverWait(driver, 30).until(
        EC.presence_of_element_located((By.CLASS_NAME, 'sc-fAEnHe ePMtc'))
    )
except Exception:
    print("Error Finding Match History Table")
    driver.quit()

它总是返回异常(EC 是 selenium.webdriver.support.expected_conditions) >注意:按标签查找元素对我来说不是一个选项

这是 By.CLASS_NAME 在 selenium-java-bindings 中找到的文档。

Find elements based on the value of the "class" attribute. Only one class name should be used. If an element has multiple classes, please use cssSelector(String).

试试 (By.CSS_SELECTOR, '.sc-fAEnHe.ePMtc'):

try:
    match_history_table = WebDriverWait(driver, 30).until(
        EC.presence_of_element_located((By.CSS_SELECTOR, '.sc-fAEnHe.ePMtc'))
    )
except Exception:
    print("Error Finding Match History Table")
    driver.quit()


引用

class name Returns an element whose class name contains the search value; compound class names are not permitted.

  1. 当您搜索 class 名称值时,请注意“sc-fAEnHe ePMtc”代表由 space 分隔的 2 class 个名称,因此您可以通过“sc-fAEnHe”或“ePMtc”
  2. 除此之外,确保 presence_of_element_located 不需要高度和宽度大于 0
  3. 的元素