运行Selenium代码遇AttributeError: 'function' object has no attribute 'driver'错误求解决
解决AttributeError: 'function' object has no attribute 'driver'错误
错误原因及修复步骤:
- 1. 局部driver未绑定到实例:
new_login方法里的driver是局部变量,没有赋值给self.driver,导致new_tests无法通过self.driver访问浏览器实例。 - 2. 错误的类实例创建方式:
obj = Demo只是引用类对象,不是创建实例,应该用obj = Demo()。 - 3. 错误的方法调用与导入:实例调用方法时不需要手动传
self,且from self import self是完全错误的导入,直接删掉这行。 - 4. 方法名拼写错误:
send_key应该是send_keys(Selenium的正确方法名)。
修正后的代码:
from selenium import webdriver from selenium.webdriver.common.keys import Keys from selenium.webdriver.common.by import By class Demo: def new_login(self): # 将driver绑定到实例属性,供其他方法调用 self.driver = webdriver.Chrome() self.driver.get("https://opensource-demo.orangehrmlive.com/web/index.php/auth/login") self.driver.maximize_window() def new_tests(self): # 访问实例的driver属性,修正send_key为send_keys self.driver.find_element(By.XPATH, "//input[@placeholder='Username']").send_keys("Admin") # 创建类的实例 obj = Demo() # 调用实例方法,无需手动传入self obj.new_login() obj.new_tests()
内容的提问来源于stack exchange,提问作者Hashir Khan
相关产品推荐
相关产品推荐

