【问题标题】:How do you solve the error message " 'class_name' object has no attribute 'driver' "您如何解决错误消息“'class_name' object has no attribute 'driver'”
【发布时间】:2020-03-13 01:32:48
【问题描述】:

我已经安装了 Safari webdriver 和 Selenium,但是当我执行以下代码时

from selenium.webdriver.common.by import By
from selenium import webdriver

from time import sleep


class class_name:
    def _init_(self, username, pw):
        self.username = username
        self.password = pw
        self.driver = webdriver.Safari()


        sleep(2)

    def login(self):

        self.driver.get("https://google.com")



class_name().login()

弹出如下错误提示


Traceback (most recent call last):
  File "/Users/malachinoel/PycharmProjects/MajorTomtoGroundControl/yes.py", line 22, in <module>
    class_name().login()
  File "/Users/malachinoel/PycharmProjects/MajorTomtoGroundControl/yes.py", line 18, in login
    self.driver.get("https://google.com")
AttributeError: 'class_name' object has no attribute 'driver'

有没有办法解决这个问题?

【问题讨论】:

  • 能否提供完整的错误信息?
  • 向我们展示完整的代码,仅凭摘录很难说出问题
  • 请提供预期的minimal, reproducible example。您的代码似乎是从类定义中提取的,但您发布的内容没有 __init__ 来设置您尝试访问的属性。我想你可能拼错了:一个下划线,需要两个。

标签: python python-3.x selenium safari webdriver


【解决方案1】:

我认为,如果没有在 init 中定义为参数,则成员应该在 init 之前定义:

class class_name:
driver = None

def __init__(self, username, pw):
    self.username = username
    self.password = pw
    self.driver = webdriver.Safari()

【讨论】:

    【解决方案2】:

    您应该添加一个名为 driver 的参数,并使用 init 而不是 init

    def __init__(self, username, pw, driver):
        self.username = username
        self.pw = pw
        self.driver = driver 
    

    然后,您可以在使用类时将webdriver.Safari() 作为驱动参数。

    【讨论】:

      【解决方案3】:

      您的__init__ 似乎两边都缺少下划线。我还建议将您的对象保存在变量中,否则您的 class_name().login() 偶尔会被垃圾收集,并且浏览器将关闭,因为它不再在范围内。 name = class_name().login() 可以轻松解决此问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-08-22
        • 2021-05-16
        • 1970-01-01
        • 1970-01-01
        • 2021-04-06
        • 2022-12-04
        • 2022-11-11
        • 1970-01-01
        相关资源
        最近更新 更多