【问题标题】:Python Selenium Unable to locate button class namePython Selenium 无法找到按钮类名
【发布时间】:2020-09-26 07:26:22
【问题描述】:

我查看了关于 SO 的所有类似问题,但无法解决我的问题。 Selenium 似乎没有找到我试图单击以在抓取之前加载更多页面的按钮。

在下图中是我尝试单击以加载更多page 的按钮,然后再进行一些抓取(按钮的类名:btn btn-default)

我做了什么: 我使用了 Selenium 的网络驱动程序。 我尝试等待至少 5 秒以使用睡眠加载页面。 最后使用 click() 函数。 我从这个tutorial(部分:使用Selenium)中启发了自己

urlpage = 'theurl'

我的代码如下:

 driver = webdriver.Firefox()
driver.get(urlpage)
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);var lenOfPage=document.body.scrollHeight;return lenOfPage;")
time.sleep(5)
button = driver.find_element_by_class_name("btn btn-default")
button.click()

如果有人知道我做错了什么,我将不胜感激 :)

【问题讨论】:

    标签: python selenium selenium-webdriver web-scraping


    【解决方案1】:

    问题可能来自您试图通过提供 2 个类名(“btn”和“btn-default”)来查找类名。当我将线路更改为

    button = driver.find_element_by_class_name("btn-default")
    

    它似乎工作得很好。请注意,“btn-default”类的元素很少,它只会返回第一个。您可以使用该功能

    find_elements_by_class_name(class_name)
    

    查找该类的所有元素(将返回一个列表对象)。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-05
    • 1970-01-01
    • 2021-06-28
    • 1970-01-01
    • 1970-01-01
    • 2021-08-12
    • 1970-01-01
    相关资源
    最近更新 更多