Python 硒 "name 'driver' is not defined"

Python Selenium "name 'driver' is not defined"

我正在尝试使用 python 上的 Selenium 登录我的帐户。当我在没有对象的情况下编写这段代码时,它没有问题,但是当我开始实现 class 时,我得到错误:

name 'driver' not defined

这很奇怪,因为在我得到错误之前 'driver' 已经被调用了 1 次。

代码如下所示:

class my_bot:
def __init__(self):

    self.driver = webdriver.Safari()
    self.driver.get('https://website.com')

def login(self, email, password):

    self.email = email
    self.password = password

    wait = WebDriverWait(self.driver, 10)

    fb_btn = wait.until(EC.element_to_be_clickable((By.XPATH, '//*[@id="modal-manager"]/div/div/div/div/div[3]/span/div[2]/button')))
    self.driver.execute_script("arguments[0].click()", fb_btn)
    sleep(3)

    #switch the window

    base_window = self.driver.window_handles[0]
    self.driver.switch_to_window(driver.window_handles[1])

尽管 'driver' 的调用之前已经发生,但我在最后一行收到错误。

有谁知道为什么这不起作用?

您可以在切换到新 window 时使用以下代码。它将帮助您在新 window 打开

后获得 window 句柄
self.driver.switch_to_window(self.driver.window_handles[1])

添加自己。

self.driver.switch_to_window(driver.window_handles[1]) -> self.driver.switch_to_window(self.driver.window_handles[1])