1 回答

TA贡献1735条经验 获得超5个赞
您正在尝试查找尚不存在的元素。页面可能是通过 ajax 调用或其他方式更新的。
browser.find_element_by_class_name("choice.icon.rating").click()
time.sleep(1)
print(browser.find_elements_by_class_name("retableRow"))
达达姆。等待它。
更优雅的方法是等待元素存在,然后开始解析。例子:
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.by import By
def wait_for_elem_by_xpath(xp):
elem = WebDriverWait(browser, 20).until(EC.presence_of_element_located((By.XPATH, xp)))
return elem
这样,将示例代码中的最后一行替换为:
your_list = wait_for_elem_by_xpath('//*[@class="retableRow"]')
print(your_list)
它会起作用。
添加回答
举报