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

时间:2015-06-07 18:59:56

标签: 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

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

2 个答案:

答案 0 :(得分: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
  

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

     

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

     

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

有关使用get_attribute

的更多信息

您还可以尝试is_displayedis_enabled

答案 1 :(得分:4)

用它来获取课程     element.get_attribute( “类”) 并检查类列表是否包含来自html框架的特征类(例如“disable”),用于描述不可点击的按钮