<table class="sc-fAEnHe ePMtc">
<tbody>
<tr class="sc-fAEnHe ePMtc">
<td classs"sc-jEECVv IBUtl">
</td>
</tr>
当我按类使用Selenium的Find元素时,它能够找到元素,我甚至尝试用"替换空格(在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(>注意:按标记查找元素对我来说不是一个选项
这是在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-策略
- 当您搜索类名值时,请注意"sc fAEnHe ePMtc";表示用空格分隔的2个类名,因此可以按";sc fAEnHe";或通过";ePMtc">
- 此外,请确保presence_of_element_located不需要高度和宽度大于0的元素