Selenium报AttributeError: WebElement对象无checked属性如何解决?
错误原因
Selenium 封装的 WebElement 对象没有直接映射 HTML 原生元素的属性,因此不能通过 .checked 语法直接获取元素的checked属性值,这是触发 AttributeError 的直接原因。
解决方案
你可以选择任意一种方式实现判断逻辑:
- 方法1:调用
get_attribute()方法主动获取属性值
wait = WebDriverWait (driver, 15) element = wait.until(EC.visibility_of_all_elements_located((By.XPATH,"XYZ"))) for i in element: # 主动获取checked属性值做判断 if i.get_attribute('checked') == 'true': print('Step 33. Auto update button is ON - PASS') else: print('Step 33. Auto update button failed to switch - PASS') pass
- 方法2:使用Selenium内置的
is_selected()方法,该方法专门用于判断复选框、单选框、开关类元素的选中状态,兼容性更好:
wait = WebDriverWait (driver, 15) element = wait.until(EC.visibility_of_all_elements_located((By.XPATH,"XYZ"))) for i in element: if i.is_selected(): print('Step 33. Auto update button is ON - PASS') else: print('Step 33. Auto update button failed to switch - PASS') pass
内容的提问来源于stack exchange,提问作者Claudaette
相关产品推荐
相关产品推荐

