Элемент не кликается в точке. Другой элемент получит клик:

Я пытаюсь нажать кнопку на верхней части страницы. Я использую селектор CSS, и он отлично работает, когда я запускаю его в своем локальном eclipse. Но когда я пытаюсь запустить его на сервере Jenkins на моем локальном машина не работает, говоря, что элемент не доступен для клика. Когда я увидел скриншот неудачного теста на Jenkins, я вижу, что заголовок перекрывает кнопку, которую я хочу щелкнуть. Я пробовал почти все, используя XPath, CSS, перемещаюсь в элемент, двигаю мышью. Но все равно не могу это исправить. Кто-то, пожалуйста, помогите.

Я пытаюсь нажать на addtoun

org.openqa.selenium.WebDriverException: Element is not clickable at point (775.25, 10.166671752929688). Other element would receive the click: <div class="globalHeader-UtilTop"></div>
Command duration or timeout: 69 milliseconds
Build info: version: '2.53.0', revision: '35ae25b1534ae328c771e0856c93e187490ca824', time: '2016-03-15 10:43:46'
System info: host', ip: '', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.7.0_80'

<div class="Componet-intels**strong text**-Container">
<div class="Componet-intels-Container-Header">
<div class="Componet-intels-Container-Content">
<div class="Componet-intels-Container-Content-Row">
<span class="Componet-intels-Item"> Item # </span>
<span class="Componet-intels-Text-Item">
<span class="Componet-intels-Lable-Quantity"> Qty: </span>
<span class="Componet-intels-Text-Quantity">
<span class="Componet-intels-Button">
**<input class="Componet-intelsButtonIcon" type="button" value="Add">**
</span>
</div>

Ответ 1

Элемент не активен в точке (775.25, 10.166671752929688). Другой элемент получит клик:

В нем четко сказано, что элемент, который мы хотим щелкнуть, в этом случае скрыт каким-либо другим элементом div, который будет получать щелчок.

Я думаю, что это проблема с пользовательским интерфейсом, и заголовок не должен скрывать элемент, но вы можете попробовать несколько вещей:

  1. Разверните окно браузера от webdriver, чтобы увидеть, скрывает ли заголовок элемент

    driver.manage().window().maximize() 
    
  2. Используйте JavaScript, чтобы щелкнуть элемент

    WebElement element = driver.findElement(By.<locator>);
    JavascriptExecutor executor = (JavascriptExecutor)driver;
    executor.executeScript("arguments[0].click()", element)'
    

Ответ 2

использовать JavascriptExecutor.: -

WebElement element = driver.findElement(By.<locator>);

JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript("arguments[0].click()", element)

Ответ 3

В моем случае мне пришлось нажимать на кнопку, которая была бы видна только после загрузки нескольких графиков, а затем с изображением ajax. Следующие шаги помогли мне решить проблему:

  • Определите xpath/css, который исчезает после завершения ajax-вызова и явно ожидает, что он будет invisible-wait.until(ExpectedConditions.invisibilityOf(element));

  • Еще одно явное ожидание кнопки clickable-wait.until(ExpectedConditions.elementToBeClickable(element));

  • Используйте javascript для нажатия на кнопку -

    WebElement element = driver.findElement(By.xpath("")); JavascriptExecutor js = (JavascriptExecutor)driver;
    js.executeScript("arguments[0].click()", element);

Если все же это не работает, попробуйте вставить неявное ожидание между шагами 1 и 2.

Ответ 4

Спасибо вам, JSexecuter, помогите мне. Я попробую