Ошибка, которую я получаю: < /p>
Код: Выделить всё
Message: element click intercepted: Element is not clickable at point (...). Other element would receive the click:
< /code>
Несмотря на попытку удалить это наложение и диалог с использованием JavaScript, щелчок все еще заблокирован или не выполняет желаемое действие. Иногда это выглядит так, будто страница сбрасывается или браузер уходит. В других случаях я получаю ошибку JavaScript, такую как: < /p>
javascript error: 'caller', 'callee', and 'arguments' properties may not be accessed on strict mode functions...
< /code>
или: < /p>
Message: element not interactable
< /code>
Вот что я попробовал: < /p>
# 1. Using Selenium's click directly
try:
driver.find_element(By.ID, 'ctl00_CPPC_ConfirmMessage_OSNR_btnOk').click()
except Exception as e:
print(f"❌ Failed: {e}")
Код: Выделить всё
# 2. Removing overlay and modal manually
try:
driver.execute_script("""
let overlay = document.querySelector('.ui-widget-overlay');
let dialog = document.querySelector('.ui-dialog');
if (overlay) overlay.remove();
if (dialog) dialog.remove();
""")
time.sleep(1)
except Exception as e:
print(f"❌ Overlay remove failed: {e}")
< /code>
все еще перехватывается. Иногда браузер закрывается мгновенно. < /P>
# 3. Clicking via JavaScript after removal
try:
driver.execute_script("""
const btn = document.getElementById('ctl00_CPPC_ConfirmMessage_OSNR_btnOk');
if (btn) btn.click();
""")
except Exception as e:
print(f"❌ JavaScript click failed: {e}")
Код: Выделить всё
# 4. Forcing the postback directly
try:
driver.execute_script("DoButtonPostBack('ctl00$CPPC$btnShip');")
except Exception as e:
print(f"❌ Postback failed: {e}")
< /code>
Это может перезагрузить или полностью закрыть страницу. < /p>
# 5. Disabling jQuery dialog itself
try:
driver.execute_script("""
if (window.jQuery) {
jQuery.fn.dialog = function() { return this; };
}
""")
except Exception as e:
print(f"❌ jQuery disable failed: {e}")
< /code>
Все еще нет эффекта. Оверлей блокирует действие.print("✅ Removed overlay")
print("✅ Clicked OK button")
< /code>
Но иногда он печатает их и до сих пор не делает ничего видимого или мгновенно увольняется. Я даже пробовал комбинации ожидания и взаимодействия. Пример: < /p>
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.ID, 'ctl00_CPPC_ConfirmMessage_OSNR_btnOk'))).click()
Код: Выделить всё
Chrome: 136.0.7103.114
Selenium: 4.x
Python: 3.11+
chromedriver used
надежный способ полностью удалить наложение и модальный диалог. /> предотвратить закрытие или сброс браузера после запуска сценария. < /p>
< /li>
< /ol>
Любая помощь будет оценена. Я исчерпал все разумные способы, которые я знаю. Если вы имели дело с постоянными наложениями или диалогами jquery, ваши предложения приветствуются! Я сделал все возможное, чтобы все ясно.
Подробнее здесь: https://stackoverflow.com/questions/796 ... ay-and-mod
Мобильная версия