[英]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.