jdholtz / auto-southwest-check-in

A Python script that automatically checks in to your Southwest flight 24 hours beforehand.
GNU General Public License v3.0
440 stars 84 forks source link

Cannot log in to account #217

Closed bradzab0623 closed 7 months ago

bradzab0623 commented 7 months ago

Version

v7.1

Browser Version

Chrome 117.0.5938.62

Description

The script cannot log into my southwest account. It seems to be having issues clicking the login button a second time. (I was the one that had the issue where sometimes the first click didnt take). It looks like it may still be in the process of logging in when it is trying to click again? (The spinner/backdrop is still active).

To Reproduce

Run the docker container with an account to log in to.

Expected Behavior

Logs in and gets reservations

Relevant logs and program output

2024-02-04 17:55:20 DEBUG MainProcess[log:23]: Initialized the application
2024-02-04 17:55:20 DEBUG MainProcess[main:112]: Auto-Southwest Check-In v7.1
2024-02-04 17:55:20 DEBUG MainProcess[main:113]: Called with 0 arguments
2024-02-04 17:55:20 DEBUG MainProcess[config:107]: Initializing configuration file
2024-02-04 17:55:20 DEBUG MainProcess[config:135]: Reading the configuration file
2024-02-04 17:55:20 DEBUG MainProcess[config:53]: Setting check fares to True
2024-02-04 17:55:20 DEBUG MainProcess[config:67]: Setting notification level to <NotificationLevel.INFO: 1>
2024-02-04 17:55:20 DEBUG MainProcess[config:80]: Using 1 notification services
2024-02-04 17:55:20 DEBUG MainProcess[config:84]: Setting retrieval interval to 1 hours
2024-02-04 17:55:20 DEBUG MainProcess[config:118]: Creating configurations for 1 accounts
2024-02-04 17:55:20 DEBUG MainProcess[main:142]: Monitoring 1 accounts and 0 reservations
2024-02-04 17:55:21 DEBUG Process-1[reservation_monitor:154]: Acquiring lock...
2024-02-04 17:55:21 DEBUG Process-1[reservation_monitor:156]: Lock acquired
2024-02-04 17:55:21 DEBUG Process-1[reservation_monitor:178]: Retrieving reservations for account
2024-02-04 17:55:21 DEBUG Process-1[webdriver:103]: Starting webdriver for current session
2024-02-04 17:55:22 DEBUG Process-1[webdriver:119]: Using browser version: 117.0.5938.62
2024-02-04 17:55:22 DEBUG Process-1[webdriver:123]: Loading Southwest Check-In page
2024-02-04 17:55:28 DEBUG Process-1[webdriver:80]: Logging into account to get a list of reservations and valid headers
2024-02-04 17:55:29 DEBUG Process-1[webdriver:152]: Waiting for headers_set to be set
2024-02-04 17:55:29 DEBUG Process-1[webdriver:156]: headers_set set successfully
2024-02-04 17:55:30 DEBUG Process-1[webdriver:144]: Login response has been received
2024-02-04 17:55:35 DEBUG Process-1[webdriver:186]: Login form failed to submit. Clicking login button again
Process Process-1:
Traceback (most recent call last):
  File "/app/lib/webdriver.py", line 184, in _click_login_button
    seleniumbase_actions.wait_for_element_not_visible(driver, login_button, timeout=5)
  File "/usr/local/lib/python3.12/site-packages/seleniumbase/fixtures/page_actions.py", line 1030, in wait_for_element_not_visible
    timeout_exception(Exception, message)
  File "/usr/local/lib/python3.12/site-packages/seleniumbase/fixtures/page_actions.py", line 266, in timeout_exception
    raise exc(msg)
Exception: Element {button#login-btn} was still visible after 5 seconds!

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.12/multiprocessing/process.py", line 314, in _bootstrap
    self.run()
  File "/usr/local/lib/python3.12/multiprocessing/process.py", line 108, in run
    self._target(*self._args, **self._kwargs)
  File "/app/lib/reservation_monitor.py", line 42, in monitor
    self._monitor()
  File "/app/lib/reservation_monitor.py", line 157, in _monitor
    reservations, skip_scheduling = self._get_reservations()
                                    ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/app/lib/reservation_monitor.py", line 182, in _get_reservations
    reservations = webdriver.get_reservations(self)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/app/lib/webdriver.py", line 93, in get_reservations
    self._wait_for_login(driver, account_monitor)
  File "/app/lib/webdriver.py", line 163, in _wait_for_login
    self._click_login_button(driver)
  File "/app/lib/webdriver.py", line 187, in _click_login_button
    driver.click(login_button)
  File "/usr/local/lib/python3.12/site-packages/seleniumbase/core/sb_driver.py", line 54, in click
    page_actions.click(self.driver, *args, **kwargs)
  File "/usr/local/lib/python3.12/site-packages/seleniumbase/fixtures/page_actions.py", line 1526, in click
    element.click()
  File "/usr/local/lib/python3.12/site-packages/selenium/webdriver/remote/webelement.py", line 93, in click
    self._execute(Command.CLICK_ELEMENT)
  File "/usr/local/lib/python3.12/site-packages/selenium/webdriver/remote/webelement.py", line 394, in _execute
    return self._parent.execute(command, params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/selenium/webdriver/remote/webdriver.py", line 347, in execute
    self.error_handler.check_response(response)
  File "/usr/local/lib/python3.12/site-packages/selenium/webdriver/remote/errorhandler.py", line 229, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.ElementClickInterceptedException: Message: element click intercepted: Element <button class="mt4 button button--fluid larger button--yellow" type="submit" id="login-btn" role="submit">...</button> is not clickable at point (712, 311). Other element would receive the click: <div class="backdrop visible active"></div>
  (Session info: chrome=117.0.5938.62)

Additional context

No response

jdholtz commented 7 months ago

This is a duplicate of #208 and #215 which are ultimately a duplicate of #201. The exception has already been fixed in the develop branch, but the underlying issue is a Too Many Requests error.