Я работаю над проектом автоматизации на основе селена python. Код автоматизирует некоторые обычные задачи, подключаясь к внутреннему URL-адресу веб-страницы компании. Однако код иногда вызывает одно и то же исключение между двумя действиями нажатия кнопки. Не могли бы вы помочь мне понять, в чем смысл, по которому я скучаю? Заранее спасибо. Вы можете найти мой фрагмент кода и скриншот ошибки здесь:
selenium.common.exceptions.ElementClickInterceptedException: Сообщение: элемент перехвачен: Элемент ... неактивен в точке (180, 447). Другой элемент получит щелчок: ...
pycharm_error_output_screenshot
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options
timeout = 200
options = Options()
options.headless = False
driver = webdriver.Chrome(options=options)
driver.implicitly_wait(3)
wait = WebDriverWait(driver, timeout)
driver.get("https://internal_web_appplication_page_for_company_x")
apply_button_v4 = wait.until(EC.visibility_of_element_located((By.XPATH, "//body//button[2]")))
apply_button_v4.click()
both_button = wait.until(EC.element_to_be_clickable((By.XPATH, "// label[3] // span[1]")))
wait.until_not(EC.element_to_be_clickable((By.CLASS_NAME, "map-mask")))
wait.until_not(EC.element_to_be_clickable((By.XPATH, "// *[ contains( @ class, 'map-mask')]")))
both_button.click()
Перехваченный элемент - это полноэкранное уведомление о загрузке, которое отображается для короткий период времени после любого нажатия кнопки. Более того, мой код работает, как и ожидалось, если я поставлю time.sleep (5) до нажатия кнопки «both_button».