Selenium - щелчок по элементу перехвачен: элемент не доступен для кликов

У меня возникла проблема с некоторыми кнопками. Они не кликабельны. Например: Нажмите эту кнопку: введите сюда описание изображения на https://generator.ninja/games/random-cards/

По каким-то причинам он не кликабельен по driver.findElement(By.cssSelector(css)).click();.

Хотя мне удалось щелкнуть по нему с помощью

WebElement element = css(".Button-module--btn--2EgyS:nth-child(4) > .Button-module--btnText--3a3Hp");
        JavascriptExecutor executor = (JavascriptExecutor)driver;
        executor.executeScript("arguments[0].click();", element);

Проблема в том, что я не понимаю, почему он вообще не кликабельен.

Я пытался найти корень проблемы, но безрезультатно.

Отвечает ли это на ваш вопрос? - stackoverflow.com/a/44724688/7598774

Shawn 09.05.2024 12:29
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
1
108
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Я не уверен, с какой проблемой вы столкнулись. Код ниже отлично работает для меня.

String url = "https://generator.ninja/games/random-cards/";
driver = new ChromeDriver();
driver.manage().window().maximize();
driver.get(url);

WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10));
wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//span[text()='Generate Another Playing Card']"))).click();

Я попробовал предоставленный вами код, и он у меня не сработал ``` org.openqa.selenium.ElementClickInterceptedException: щелчок по элементу перехвачен: Element <span class = "Button-module--btnText--3a3Hp">...</ span> не доступен для клика в точке (782, 654). Другой элемент получит щелчок: <div class = "" style = "flex: 1 0 300px; Margin: 15px;">...</div> ```

user24952292 12.05.2024 06:02
Ответ принят как подходящий

Мне удалось решить эту проблему, я нашел два решения:

  1. Прокрутить вниз:

     jsExecutor.executeScript("window.scrollBy(0,document.body.scrollHeight)", "");
    
  2. Примите всплывающее окно с файлами cookie:

     driver.findElement(By.id("rcc-confirm-button")).click();
    

Однако я до сих пор не понимаю, зачем это нужно и когда это необходимо.

Кроме того, я столкнулся с еще одной проблемой; он не прокручивается до конца.

Другие вопросы по теме