As expected, the way to get the azure billing data is not very resilient and is not working since few days:
Aug 22 00:00:07 money refresh_azure_report.sh[421648]: Entering login... Aug 22 00:00:07 money refresh_azure_report.sh[421648]: Entering password... Aug 22 00:00:07 money refresh_azure_report.sh[421648]: Waiting for stay signed page... Aug 22 00:00:07 money refresh_azure_report.sh[421648]: On stay signed page Aug 22 00:00:07 money refresh_azure_report.sh[421648]: Traceback (most recent call last): Aug 22 00:00:07 money refresh_azure_report.sh[421648]: File "/opt/azure_billing/get_csv.py", line 95, in <module> Aug 22 00:00:07 money refresh_azure_report.sh[421648]: button = driver.find_element(by=By.CSS_SELECTOR, value="input[value='No']") Aug 22 00:00:07 money refresh_azure_report.sh[421648]: File "/var/lib/azure_billing/.venv/lib/python3.9/site-packages/selenium/webdriver/remote/webdriver.py", line 1248, in find_element Aug 22 00:00:07 money refresh_azure_report.sh[421648]: return self.execute(Command.FIND_ELEMENT, { Aug 22 00:00:07 money refresh_azure_report.sh[421648]: File "/var/lib/azure_billing/.venv/lib/python3.9/site-packages/selenium/webdriver/remote/webdriver.py", line 425, in execute Aug 22 00:00:07 money refresh_azure_report.sh[421648]: self.error_handler.check_response(response) Aug 22 00:00:07 money refresh_azure_report.sh[421648]: File "/var/lib/azure_billing/.venv/lib/python3.9/site-packages/selenium/webdriver/remote/errorhandler.py", line 247, in check_response Aug 22 00:00:07 money refresh_azure_report.sh[421648]: raise exception_class(message, screen, stacktrace) Aug 22 00:00:07 money refresh_azure_report.sh[421648]: selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"input[value='No']"} Aug 22 00:00:07 money refresh_azure_report.sh[421648]: (Session info: headless chrome=104.0.5112.101)