Могут ли некоторые объяснить этот код, который помог мне решить эту ошибку: «в точке щелчка нет (1158, 533). Другой элемент получит щелчок» - PullRequest
0 голосов
/ 22 мая 2019

Когда я пытаюсь нажать на кнопку, система выдает это сообщение об ошибке. "не активируется в точке (1158, 533). Другой элемент получит щелчок"

Я пытаюсь нажать на кнопку, которая находится в теге span, но обнаружил, что эта ошибка "не активна в точке (1158, 533). Другой элемент получит щелчок" Вышеупомянутый код помог решить эту проблему, кто-то может объяснить этот код? что такое аргумент в этом коде? мы можем иметь какое-либо значение для аргументов?

до этого я пытаюсь этот код

driver.manage().timeouts().implicitlyWait(2000, TimeUnit.SECONDS);
driver.findElement(By.xpath("//*[@id=\"get_approval\"]/span/span")).click();

This code help to solve this issue
WebElement ele = driver.findElement(By.xpath("//*[@id=\"get_approval\"]/span/span"));
JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript("arguments[0].click();", ele);

1 Ответ

0 голосов
/ 22 мая 2019

Я могу подумать о 3 вариантах:

  1. Ваш селектор неверен, т. Е. Ваш span обернут в другой элемент в DOM , поэтому вам необходимо проверить дерево DOM, чтобы убедиться, что оно не «перекрывается» другим элементом , Обычно вы не должны нажимать <span>, я ожидаю, что это будет ссылка или кнопка или изображение
  2. Элемент скрыт с помощью некоторого всплывающего окна, то есть Согласие на использование cookie , которое нужно сначала щелкнуть
  3. Элемент, на который вы собираетесь щелкнуть, невидим или полностью не виден, рассмотрите возможность вызова scrollIntoView () function

    driver.executeScript("arguments[0].scrollIntoView(true);", ele);
    

  1. Также старайтесь избегать использования подстановочных знаков в XPath, таких как //*, так как для их оценки требуется много памяти и ресурсов. Наилучшим вариантом является использование идентификаторов, и как только вы найдете родительский элемент, вы можете перейти к относительному XPath-запросу , например:

    WebElement ele = driver.findElement(By.id("get_approval")).findElement(By.xpath("./span/span"));
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...