You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python Selenium登录混合框架调用Logintest报setUserName属性错误如何解决

报错根因

你遇到的AttributeError: 'Logintest' object has no attribute 'setUserName'错误,核心原因是你调用的setUserName方法,没有在你实例化的Logintest类内部定义。

排查步骤
  • 检查Logintest类的方法名拼写:Python对大小写敏感,确认类里的方法名和你调用的setUserName完全一致,避免出现类里写的是set_username(下划线命名)、setUsername(首字母小写驼峰)这类拼写不匹配的问题。
  • 检查方法缩进:确认setUserName方法是定义在Logintest类的内部,没有因为缩进错误变成全局函数。
  • 检查导入路径:确认你测试代码里导入的Logintest类,就是你写了用户名输入方法的页面对象类,没有导入错其他同名的空类。
修复示例

你可以参考如下页面对象层的正确写法调整你的Logintest类:

from selenium.webdriver.common.by import By

class Logintest:
    def __init__(self, driver):
        self.driver = driver
        # 用户名输入框元素定位,可替换为你实际的定位规则
        self.username_loc = (By.NAME, "user")
    
    # 方法名必须和调用时完全一致
    def setUserName(self, username):
        self.driver.find_element(*self.username_loc).send_keys(username)

如果想要快速验证对象可用方法,可以在实例化Logintest后加入一行调试代码:

self.Lp=Logintest(self.driver)
# 打印对象所有可用属性方法,确认是否存在setUserName
print(dir(self.Lp))

内容的提问来源于stack exchange,提问作者ashish labh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 10:36:05