Python Селен "имя" драйвер "не определено" - PullRequest
0 голосов
/ 21 апреля 2020

Я пытаюсь войти в свою учетную запись, используя Selenium с python. Когда я пишу этот код без объекта, он работает без проблем, но когда я начинаю реализовывать класс, я получаю сообщение об ошибке:

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

Я получаю сообщение об ошибке в последней строке, даже если вызов 'driver' уже произошел ранее.

Кто-нибудь знает, почему это не работает?

Ответы [ 2 ]

0 голосов
/ 21 апреля 2020

добавить себя.

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

0 голосов
/ 21 апреля 2020

Вы можете использовать приведенный ниже код при переходе в новое окно. это поможет вам получить дескриптор окна после открытия нового окна

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