检查是否在Python中使用Selenium禁用链接​​?

时间:2015-04-20 18:13:01

标签: python selenium selenium-webdriver

我需要检查是否已设置链接的已禁用属性,在以下代码中

<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','')">

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

使用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':
    # ...