Я пытаюсь получить доступ к PenFed , чтобы получить текущую сумму.Я провел немало исследований и, к сожалению, все еще в тупике.Я использую Python Selenium и пытаюсь нажать на кнопку начального входа в систему сбоку, чтобы увидеть поле имени пользователя.Это HTML-код элемента:
<a href="https://www.penfed.org/" class="pfui-button-login login-slide-button pfui-button pfui-btn-tertiary-dark-blue-outline" id="mobile-login" data-di-id="#mobile-login">Login</a>
Когда я пытаюсь запустить следующий код:
driver.find_element_by_id("mobile-login").click()
Я получаю следующую ошибку:
selenium.common.exceptions.ElementNotVisibleException: Message: element not interactable
Даже когдаЯ пытаюсь использовать функции WebDriver Wait, такие как:
try:
WebDriverWait(driver, 5).until(EC.visibility_of_element_located((By.ID, "mobile-login"))).click()
except ElementNotVisibleException:
WebDriverWait(driver, 5).until(EC.element_to_be_clickable((By.ID, "mobile-login"))).click()
Независимо от того, как долго я заставляю их ждать, я получаю сообщение об истечении времени ожидания:
raise TimeoutException(message, screen, stacktrace) selenium.common.exceptions.TimeoutException: Message:
Все мои исследования говорят, чтовызов функции ожидания должен исправить это, но это не работает для меня.Я также читал, что поверх элемента может быть наложение изображения, которое мне придется вызывать перед нажатием кнопки, но я также не увидел ничего в коде веб-сайта.Если я тестирую это, единственный способ, которым я могу нажать на кнопку с помощью кода, - это если я сначала физически нажму на нее, так что я не знаю о чем-либо еще, что я могу использовать.Заранее благодарю за помощь!
ОБНОВЛЕНИЕ: Я обнаружил, что у меня работает следующий код:
element = driver.find_element_by_id("mobile-login")
driver.execute_script("$(arguments[0]).click();", element)
Но я не знаю, что на самом деле делает execute_script.Может кто-нибудь объяснить, что фрагмент кода работает, или другие альтернативы работают на них?