Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can not login automatically - object is not iterable #176

Open
AndrewShear opened this issue Apr 11, 2024 · 3 comments
Open

Can not login automatically - object is not iterable #176

AndrewShear opened this issue Apr 11, 2024 · 3 comments
Labels
bug Something isn't working

Comments

@AndrewShear
Copy link

Describe the bug
Cannot log into any account automatically either live or paper. Manually works.
Selenium is returning <class 'TypeError'> 'NoneType' object is not iterable.

To Reproduce
Steps to reproduce the behavior:

  1. using image voyz/ibeam:0.5.2-rc2
  2. setup environment variables:
  • IBEAM_ACCOUNT
  • IBEAM_PASSWORD
  • IBEAM_AUTHENTICATION_STRATEGY=B
  1. receiving this error:
2024/04/11 10:56:14 INFO successfully loaded credentials
2024-04-11 10:56:15,372|I| ############ Starting IBeam version 0.5.2-rc2 ############
2024-04-11 10:56:15,374|I| Secrets source: env
...
2024-04-11 10:56:15,596|I| Logging in failed
2024-04-11 10:57:06,788|I| Maintenance
2024-04-11 10:57:06,956|I| Attempt number 2
2024-04-11 10:57:07,025|I| Max request retries reached after 2 attempts. Consider increasing the retries by setting IBEAM_REQUEST_RETRIES environment variable
2024-04-11 10:57:07,025|I| NO SESSION Status(running=True, session=False, connected=False, authenticated=False, competing=False, collision=False, session_id=None, server_name=None, server_version=None, expires=None)
2024-04-11 10:57:07,026|I| Authentication strategy: "B"
2024-04-11 10:57:07,026|I| No active sessions, logging in...
2024-04-11 10:57:07,026|I| Loading auth webpage at https://localhost:5000/sso/Login?forwardTo=22&RL=1&ip2loc=on
2024-04-11 10:57:14,965|I| Gateway auth webpage loaded
2024-04-11 10:57:14,966|I| Login attempt number 1
2024-04-11 10:57:15,296|E| Error encountered during authentication 
Exception:
  File "/usr/local/lib/python3.11/threading.py", line 995, in _bootstrap
    self._bootstrap_inner()
  File "/usr/local/lib/python3.11/threading.py", line 1038, in _bootstrap_inner
    self.run()
  File "/usr/local/lib/python3.11/threading.py", line 975, in run
    self._target(*self._args, **self._kwargs)
  File "/usr/local/lib/python3.11/concurrent/futures/thread.py", line 83, in _worker
    work_item.run()
  File "/usr/local/lib/python3.11/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/venv/lib/python3.11/site-packages/apscheduler/executors/base.py", line 125, in run_job
    retval = job.func(*job.args, **job.kwargs)
  File "/srv/ibeam/src/gateway_client.py", line 84, in _maintenance
    success, shutdown, status = self.start_and_authenticate(request_retries=self.request_retries)
  File "/srv/ibeam/src/gateway_client.py", line 53, in start_and_authenticate
    success, shutdown, status = self.strategy_handler.try_authenticating(request_retries=request_retries)
  File "/srv/ibeam/src/handlers/strategy_handler.py", line 85, in try_authenticating
    return self._authentication_strategy_B(status, request_retries)
  File "/srv/ibeam/src/handlers/strategy_handler.py", line 140, in _authentication_strategy_B
    return self._log_in(status)
  File "/srv/ibeam/src/handlers/strategy_handler.py", line 151, in _log_in
    success, shutdown = self.login_handler.login()
  File "/srv/ibeam/src/handlers/login_handler.py", line 435, in login
    self.attempt(targets, wait_and_identify_trigger, driver)
  File "/srv/ibeam/src/handlers/login_handler.py", line 359, in attempt
    trigger, target = self.step_login(targets, wait_and_identify_trigger, driver, self.secrets_handler.account, self.secrets_handler.password, self.secrets_handler.key, self.presubmit_buffer)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/srv/ibeam/src/handlers/login_handler.py", line 164, in step_login
    user_name_el.send_keys(account)
  File "/opt/venv/lib/python3.11/site-packages/selenium/webdriver/remote/webelement.py", line 231, in send_keys
    Command.SEND_KEYS_TO_ELEMENT, {"text": "".join(keys_to_typing(value)), "value": keys_to_typing(value)}
                                                   ^^^^^^^^^^^^^^^^^^^^^
  File "/opt/venv/lib/python3.11/site-packages/selenium/webdriver/common/utils.py", line 137, in keys_to_typing
    characters.extend(val)

  <class 'TypeError'> 'NoneType' object is not iterable
2024-04-11 10:57:15,296|I| Cleaning up the resources. Display: <pyvirtualdisplay.display.Display object at 0x7f728e93d610> | Driver: <selenium.webdriver.chrome.webdriver.WebDriver (session="1252f2aacb6b96ac78a3edbfd5ca734d")>
2024-04-11 10:57:15,398|I| Logging in failed

Expected behavior
Expect to login automatically.

Environment
IBeam version: voyz/ibeam:0.5.2-rc2
Docker image or standalone: docker image running on kubernetes
Python version (standalone users only): N/A
OS: EKS

Additional context
I have tried running this directly with docker and on my kubernetes cluster and both do not work. I have tried the latest image as well with the 0.5.2-rc2 image.

Suggest a Fix
Possibly look into if the object name has changed within the selenium lookup. Maybe look into if dev tools are working appropriately.

@AndrewShear AndrewShear added the bug Something isn't working label Apr 11, 2024
@Voyz
Copy link
Owner

Voyz commented Apr 15, 2024

Hi @AndrewShear! Thanks for trying out IBeam and for the detailed description of your issues 👍

The error you've linked indicates that there is no account specified, making the account variable a None.

Have you provided IBEAM_ACCOUNT environment variable?

@AndrewShear
Copy link
Author

@Voyz Thanks for the reply! Yes I have these 3 variables passed:

  • IBEAM_ACCOUNT
  • IBEAM_PASSWORD
  • IBEAM_AUTHENTICATION_STRATEGY=B

I will look into this more to see if somehow somewhere the env of IBEAM_ACCOUNT isn't being set properly as I'm using kubernetes.

@Voyz
Copy link
Owner

Voyz commented Apr 15, 2024

Interesting! I've just pushed voyz/ibeam:0.5.2-rc3 image which should raise the following exception when the IBEAM_ACCOUNT is missing:

Account cannot be None. Specify by setting IBEAM_ACCOUNT environment variable.

Give it a try and see if you see that error pop up.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants