在 Python 中使用 Selenium 检查是否禁用了 link?

Check whether a link is disabled using Selenium in Python?

我需要检查是否设置了link的禁用属性,在下面的代码中,

<a id="ctl00_ContentPlaceHolder1_lbtnNext" disabled="disabled">Next</a>

但是如果我执行最后一页,

next_pg=driver.find_element_by_xpath("//a[@id='ctl00_ContentPlaceHolder1_lbtnNext']")
next_pg.click()
print next_pg.is_enabled()

我得到 True 作为输出,但事实并非如此。 此外,仅在最后一页上 Next 编码如上,在所有其他页面中编码如下,因此在检查时is_enabled() 标签,会产生错误。

<a id="ctl00_ContentPlaceHolder1_lbtnNext" href="javascript:__doPostBack('ctl00$ContentPlaceHolder1$lbtnNext','')">

我该如何解决?

使用this answer获取标签的属性:

attrs = driver.execute_script('var items = {}; for (index = 0; index < arguments[0].attributes.length; ++index) { items[arguments[0].attributes[index].name] = arguments[0].attributes[index].value }; return items;', next_pg)

并检查是否存在 disabled 标签及其值:

if 'disabled' in attrs and attrs['disabled'] == 'disabled':
    # ...