首页 > 解决方案 > driver.find_elements_by_class_name 即使在 Selenium,Python 中睡眠时也会返回一个空列表

问题描述

使用 BeautifulSoup find_all(class_:"x") 解析相同的元素会返回完整列表,但由于元素是按钮,我需要用 selenium 点击我需要它们作为可点击元素出现。编码:

def findPlayerInstance(self):
    sleep(5)
    player_button = self.driver.find_elements_by_class_name('ElementDialogButton__StyledElementDialogButton-sc-1vrzlgb-0 dBIaHY')
    print(player_button)

def main(self):
    self.driver.get(self.URL)
    sleep(1)
    self.findPlayerInstance()
    sleep(1)
    self.driver.close()
    

类名是正确的。驱动程序正常工作,另一个调用 driver.page_source 的函数也可以工作,但 findPlayerInstance 返回一个空列表。

标签: pythonselenium

解决方案


类名不应有空格(理想情况下它们是不同的类)。当您有多个类时,将空格替换.为如下所示。

player_button = self.driver.find_elements_by_class_name('ElementDialogButton__StyledElementDialogButton-sc-1vrzlgb-0.dBIaHY')

推荐阅读