首页 > 解决方案 > Python Selenium“未定义名称'驱动程序'”

问题描述

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

name 'driver' not defined

这很奇怪,因为在我收到错误之前,“驱动程序”已经被调用了 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])

即使“驱动程序”的调用之前已经发生,我在最后一行得到错误。

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

标签: pythonseleniumselenium-webdrivererror-handlingwebdriver

解决方案


您可以在切换到新窗口时使用以下代码。它将帮助您在新窗口打开后获取窗口句柄

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

推荐阅读