当前位置: 首页 > 知识库问答 >
问题:

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

欧阳斌
2023-03-14

因此,我正在使用Selenium和Python进行一些web抓取,我遇到了一个问题。我正在单击下一个按钮以移动到某个网站上的下一页,但我需要在到达最后一页时停止单击。现在,我的想法是使用some_element。在try/except语句中单击()并等待,直到该按钮不再可单击时出现错误。似乎,.click()不发出任何类型的信号,当按钮不能被点击时,它不会抛出错误,也不会发出任何真或假信号。

我尝试使用的代码片段:

while True:
    try:
       button = driver.find_element_by_class_name('Next_button')
       button.click()
    except:
       break

还有别的办法吗?谢谢,干杯。

共有2个答案

那鹏
2023-03-14

使用它来获取类元素。get_attribute(“class”)并检查类列表是否包含html框架中用于描述不可点击按钮的特征类(例如“disable”)

堵宪
2023-03-14

在不了解示例目标的情况下,最起码可以说一个可点击的属性应该有一个“href”属性。< br >您可以使用元素的< code>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值都作为字符串返回。对于不存在的属性或属性,将不返回。

有关使用< code>get_attribute的更多信息

您也可以尝试< code>is_displayed或< code>is_enabled

 类似资料:
  • 我正在构建一个对Azure AD进行OAUTH身份验证的Web应用程序。我的意思是,您通过您的Azure AD/Office e365帐户登录我的应用程序。登录成功后,我将Azure AD用户的GUID与我的Mysql数据库中的用户匹配。我在用户登录的会话信息中设置。 我使用这个howto作为它的基础:https://kv AES . WordPress . com/2016/10/21/azur

  • 问题内容: 我想检查浏览器是否仍然存在,如果不存在,那么我想打开一个新的浏览器!网络驱动程序中是否有可用的api来检查浏览器是否仍然存在? 问题答案: 调用后,将driver的值设置为 但是,如果调用,它将驱动程序的值设置为 因此,如果您在调用 driver.quit() 之后检查浏览器窗口,则可以通过以下实现知道。

  • 问题内容: 这是我的HTML代码 我正在尝试,但没有任何价值。 问题答案: 要么 如果ID正在更改…请使用以下XPATH: 要么

  • 以下是我试图单击的按钮的HTML代码: 我可以使用XPath/Class Name/CSS选择器点击按钮的可能方式有哪些? 我做了如下尝试:

  • 问题内容: 我正在尝试使用python语言的selenium为管理用户的网页编写测试。有人可以在此页面中为用户添加角色,如果在添加角色时存在该角色,则会发出警报。我不知道警报是JavaScript警报还是网页元素。我想自动检查警报的存在,因为检查列表中的角色既浪费时间又负担很大。我尝试了这个: 但这没有用,我收到了“ UnexpectedAlertPresentException”。我也尝试过这个