Selenium操作元素报'bool' object has no attribute 'Click'错误
报错原因
错误由两个问题共同导致:
- 变量赋值逻辑错误:定位元素后链式调用的
is_displayed()方法返回值为布尔类型(True/False),作用是校验元素是否在页面可见,你将这个布尔结果赋值给了username变量,而非实际定位到的输入框元素对象。布尔类型不存在网页元素的操作方法,调用时自然抛出属性不存在的异常。 - 方法名书写错误:Selenium Python 客户端的元素点击方法为全小写的
click(),不存在大写开头的Click()方法,即便变量赋值正确,大写方法名也会触发报错。
修复方式
调整赋值逻辑,先将定位到的元素对象存入变量,可见性校验单独调用即可,同时修正方法名大小写,移除无用的webbrowser导入。
修复后可运行代码:
from selenium.webdriver.common.by import By from selenium import webdriver driver = webdriver.Chrome(r'D:\Install\chromedriver_win32\chromedriver.exe') driver.get("https://lms.jspmrscoe.edu.in/?redirect=0") # 存储定位到的用户名输入框元素 username = driver.find_element(By.NAME, 'username') # 如需校验元素可见性,单独判断即可,不要覆盖元素变量 # if username.is_displayed(): username.click() username.send_keys("你的实际用户名")
内容的提问来源于stack exchange,提问作者Shaunak Shinde
相关产品推荐
相关产品推荐

