Я пытаюсь автоматизировать некоторые утомительные операции копирования / вставки, которые я делаю ежемесячно из онлайн-службы моего банка через Selenium и Python 3. К сожалению, я не могу заставить Selenium щелкнуть ссылку для входа в систему.
Это синяя кнопка продолжения в https://www1.bmo.com/onlinebanking/cgi-bin/netbnx/NBmain?product=5.
Странно, когда я пытаюсь вручную щелкнуть эту ссылку в браузере, запущенном Selenium, он тоже не работает - тогда как он работает вбраузер я запускаю вручную.
Я подозреваю, что проблема в том, что веб-сайт банка достаточно умен, чтобы обнаружить, что я автоматизирую работу браузера.Есть ли способ обойти это?
Если нет, может ли это быть чем-то другим?
Я пробовал использовать Chrome и Firefox - безрезультатно.Я использую 64-битную машину Windows 10 с Chrome 73.0.3683.103 и Firefox 66.0.
Соответствующий код приведен ниже.
#websites and log in information
bmo_login_path = 'https://www1.bmo.com/onlinebanking/cgi-bin/netbnx/NBmain?product=5'
bmo_un = 'fake_user_name'
bmo_pw = 'fake_password'
#Selenium setup
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
chrome_driver_path = 'C:\\Path\\To\\Driver\\chromedriver.exe'
gecko_driver_path = 'C:\\Path\\To\\Driver\\geckodriver.exe'
browswer_bmo = webdriver.Firefox(executable_path = gecko_driver_path)
#browswer_bmo = webdriver.Chrome(executable_path = chrome_driver_path)
#log into BMO
browswer_bmo.get(bmo_login_path)
time.sleep(5)
browswer_bmo.find_element_by_id('siBankCard').send_keys(bmo_un)
browswer_bmo.find_element_by_id('regSignInPassword').send_keys(bmo_pw)
browswer_bmo.find_element_by_id('btnBankCardContinueNoCache1').click()
Отправка ключей работает отлично.Возможно, у меня неправильный идентификатор элемента (я пытался проверить это в Chrome, когда понял, что не могу щелкнуть ссылку вручную), но я думаю, что большая проблема заключается в том, что я не могу вручную щелкнуть ссылку в запущенном браузереСелен.Спасибо за любые идеи.
РЕДАКТИРОВАТЬ
Это скриншот, который я получаю из всего, что получаю, когда пытаюсь нажать кнопку продолжения.
В конечном счете, сообщение об ошибке, которое я получаю в своей IDE (Jupyter Notebook), выглядит так:
TimeoutException: Message: timeout
(Session info: chrome=74.0.3729.108)
(Driver info: chromedriver=74.0.3729.6 (255758eccf3d244491b8a1317aa76e1ce10d57e9-refs/branch-heads/3729@{#29}),platform=Windows NT 10.0.17134 x86_64)