<table class="sc-fAEnHe ePMtc">
<tbody>
<tr class="sc-fAEnHe ePMtc">
<td classs"sc-jEECVv IBUtl">
</td>
</tr>
当我使用 Selenium 的按类查找元素时,它能够找到该元素,我什至尝试用“.”、“-”和“_”替换空格(在 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()
引用文献
- json 有线协议(protocol) https://www.selenium.dev/documentation/legacy/json_wire_protocol/#sessionsessionidelement
class name Returns an element whose class name contains the search value; compound class names are not permitted.
W3C 网络驱动程序
class_name 没有在 W3C 协议(protocol)中提及,所以它可能成为遗留的 https://www.w3.org/TR/webdriver/#locator-strategies
关于Selenium 无法按类名查找元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70861500/