Не удалось нажать кнопку org.openqa.selenium.WebDriverException: </button> не активируется в точке (502, 85). Другой элемент получит клик: - PullRequest
0 голосов
/ 29 апреля 2020

Я использую Angular Js приложение. Ауотматирование с использованием селена и Java. Всякий раз, когда я пытаюсь нажать на кнопку, получаем исключение как.

 Exception in thread "main" org.openqa.selenium.WebDriverException: unknown error: Element <button .</button> is not clickable at point (502, 85). Other element would receive the click: <div class="col-sm-12 move-buttons">...</div>

Пробовал много вариантов, но ни один не работал. Любое решение приветствуется. Заранее спасибо.!! Это div, который выглядит как

    <div class="col-sm-1">
<div class="row zhide-buttons" xpath="1"> 
  <div class="col-sm-12 move-buttons"> 
   class="btn btn-primary move-button ng-scope" ng-disabled=""> <i class="fa fa-plus fa-2x"></i> </button><!-- end ngIf: 

   <i class="fa fa-minus fa-2x"></i> </button>
  </div> 
 </div>

Я пытался использовать с xpath 1.//div[contains(@class,'col-sm-1')]//button [1] 2.//i[@class='fa fa-plus fa-2x '] 3. использование координаты x, y с использованием класс действия

wait.until (ExpectedConditions .visibilityOfElementLocated (By.xpath ("// div [содержит (@ class, 'col-sm-1')] // button [1]")));

Вот мой пример код

WebElement element= driver.findElement(By.xpath("//div[contains(@class,'col-sm-1')]//button[1]"));

js.executeScript("arguments[0].scrollIntoView(true);",element);
js.executeScript("arguments[0].click();", element); 

Также я попытался найти обычный элемент и щелкнуть по нему. Это также дает ту же ошибку.

Так что в конечном итоге я не могу нажать на эту кнопку

1 Ответ

0 голосов
/ 08 мая 2020

Вы пробовали использовать класс действий -

WebElement element = driver.findElement(By("element"));
Actions action = new Actions(driver);
action.moveToElement(element).click().perform();

или

WebElement elementToClick = driver.findElement(By.xpath("Your xpath"));((JavascriptExecutor)driver).executeScript("window.scrollTo("+elementToClick.getLocation().x+","+elementToClick.getLocation().y+")"); elementToClick.click();

или

WebDriverWait wait = new WebDriverWait(driver, TIME_IN_SECONDS);
wait.until(ExpectedConditions.elementToBeClickable(By.className("element-class-name")));
...