簡體   English   中英

你如何解決錯誤信息“'class_name' object has no attribute 'driver'”

[英]How do you solve the error message " 'class_name' object has no attribute 'driver' "

我已經安裝了 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'

有沒有辦法來解決這個問題?

您應該添加一個名為 driver 的參數,並使用init而不是init

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

然后,您可以在使用該類時將webdriver.Safari()作為驅動程序參數。

我想,如果不是在初始化參數定義一個成員都應該DEF初始化之前:

class class_name:
driver = None

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

您的__init__似乎每一側都缺少下划線。 我還建議將您的對象保存在一個變量中,否則您的class_name().login()偶爾會被垃圾收集並且瀏覽器將關閉,因為它不再在范圍內。 name = class_name().login()很容易解決這個問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM