Элемент не кликается в точке. Другой элемент получит клик:
Я пытаюсь нажать кнопку на верхней части страницы. Я использую селектор 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, который будет получать щелчок.
Я думаю, что это проблема с пользовательским интерфейсом, и заголовок не должен скрывать элемент, но вы можете попробовать несколько вещей:
-
Разверните окно браузера от webdriver, чтобы увидеть, скрывает ли заголовок элемент
driver.manage().window().maximize()
-
Используйте 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, помогите мне. Я попробую