python - 未定义“Python Selenium “name '驱动程序”

标签 python selenium selenium-webdriver error-handling webdriver

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

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])

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

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

最佳答案

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

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

关于python - 未定义“Python Selenium “name '驱动程序”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61337257/

相关文章:

java - Selenium 测试失败 "Element is not clickable at..."

c# - browser.download.manager.showWhenStarting 不能被覆盖

python - 在 Mac 上解析 XML 时出现 UnicodeDecodeError,但在 PC 上可以正常工作

python - 反向修补的 django-localeurl 在单元测试中不起作用

python - 如何使用python从GPS(经度和纬度)时间序列数据中提取速度和加速度特征

c# - 如何使用页面工厂找到另一个 WebElement 的 WebElement

java - 如何在 testng 报告中使由于 try catch block 而通过的测试失败?

html - 如何使用 Python 搜索 HTML 元素? Python 网络机器人错误

python-3.x - Python/Selenium - 如何解析 URL 并单击下一页?

python - 将数据压缩成最小数量的文本?