使用Selenium和Python,如何检查按钮是否仍然可点击?

iva*_*lan 3 python selenium web-scraping

所以我正在使用Selenium和Python进行一些网络抓取,我遇到了问题.我点击"下一步"按钮移动到某个网站的下一页,但是当我到达最后一页时,我需要停止点击它.现在,我这样做的想法就是在try/except语句中使用some_element.click()并等到它给我一个错误,而按钮不再可点击.看来,.click()不会发出任何类型的信号,当按钮无法点击并且不发出任何真或假信号时,它不会抛出错误.

我尝试使用的代码段:

while True:
    try:
       button = driver.find_element_by_class_name('Next_button')
       button.click()
    except:
       break
Run Code Online (Sandbox Code Playgroud)

还有其他方法吗?谢谢和欢呼.

Dan*_*yle 5

在不了解您的示例目标的情况下,可以说的最小值是可点击属性具有'href'属性.
您可以使用get_attribute元素的属性:

button = driver.find_element_by_class_name('Next_button')
href_data = button.get_attribute('href')
if href_data is None:
  is_clickable = False
Run Code Online (Sandbox Code Playgroud)

获取元素的给定属性或属性.

此方法将首先尝试返回具有给定名称的属性的值.如果不存在具有该名称的属性,则返回具有相同名称的属性的值.如果没有具有该名称的属性,则返回None.

被视为真实的值,即等于"真"或"假",将作为布尔值返回.所有其他非None值都以字符串形式返回.对于不存在的属性或属性,返回None.

更多关于使用 get_attribute

你也可以尝试is_displayedis_enabled