硒无法按类名查找元素


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

当我按类使用Selenium的Find元素时,它能够找到元素,我甚至尝试用"替换空格(在e和r或v和I之后(&"&quot-&quot;以及"_"但它没有起作用。我使用了下面的代码

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(>注意:按标记查找元素对我来说不是一个选项

这是在selenium java绑定中找到的By.CLASS_NAME中的文档。

根据";类";属性只能使用一个类名。如果一个元素有多个类,请使用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()

参考

  • json有线协议https://www.selenium.dev/documentation/legacy/json_wire_protocol/#sessionsessionidelement

类名返回类名包含搜索值的元素;不允许使用复合类名。

  • W3C网络驱动程序

    W3C协议中没有提到class_name,因此它可能会成为遗留问题https://www.w3.org/TR/webdriver/#locator-策略

  1. 当您搜索类名值时,请注意"sc fAEnHe ePMtc";表示用空格分隔的2个类名,因此可以按";sc fAEnHe";或通过";ePMtc">
  2. 此外,请确保presence_of_element_located不需要高度和宽度大于0的元素

相关内容

  • 没有找到相关文章

最新更新