AttributeError求助:selenium.webdriver.chrome无get属性
问题排查与修复
错误根源
报错AttributeError: type object 'Chrome' has no attribute 'get'的核心原因是未实例化Chrome驱动对象。在你的setup fixture(或驱动初始化代码)中,仅引用了webdriver.Chrome类本身,没有调用构造函数生成可操作的实例——类本身不具备get这类驱动方法,只有实例化后的对象才拥有这些功能。
具体修复步骤
修正驱动实例化代码
找到你的setup代码段,确保实例化Chrome驱动时添加括号:def setup(self): # 正确写法:加括号调用构造函数生成驱动实例 self.driver = webdriver.Chrome() self.baseURL = "https://admin-demo.nopcommerce.com/login?ReturnUrl=%2Fadmin%2F" # 可补充其他初始化逻辑,如设置隐式等待若使用Pytest fixture,需确保fixture返回实例化后的driver对象:
import pytest from selenium import webdriver @pytest.fixture() def setup(): driver = webdriver.Chrome() # 实例化驱动 yield driver driver.quit() # 测试结束后统一关闭驱动验证参数传递逻辑
你的测试方法已接收setup参数,只需确保该参数传递的是实例化后的driver对象,而非驱动类。当前测试方法里self.driver = setup的逻辑是正确的,只要setup返回实例,就能拿到可操作的驱动对象。
额外优化建议
- 简化断言逻辑:无需用if-else分支判断,直接使用断言语句,失败时会自动输出清晰的错误信息:
def test_homePageTitle(self, setup): self.driver = setup self.driver.get(self.baseURL) act_title = self.driver.title self.driver.close() # 直接断言,去掉冗余分支 assert act_title == "Your store.Login" - 统一关闭浏览器:建议在
teardown(或Pytest fixture的yield后)统一处理浏览器关闭,避免每个测试方法重复编写关闭代码,提升代码复用性。
内容的提问来源于stack exchange,提问作者Deepamirna
相关产品推荐
相关产品推荐

