我正在尝试单击页面顶部的按钮 . 我正在使用CSS选择器,当我在本地eclipse中运行它时它工作得非常好 . 但是当我尝试在我本地计算机上的Jenkins服务器上运行它时它失败了,说元素不可点击 . 当我看到Jenkins测试失败的屏幕截图时,我看到 Headers 与我要点击的按钮重叠 . 我已经尝试了几乎所有使用XPath,CSS,移动到元素,移动鼠标 . 但还是无法解决,有人请帮忙 .
我想点击添加buttoun
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>
3 回答
它清楚地说,我们想要点击的元素在这种情况下被一些其他元素div隐藏,这将接收点击 .
我认为这是UI的问题, Headers 不应该隐藏元素,但你可以尝试一些事情:1 . 从webdriver最大化浏览器窗口,看看 Headers 是否仍然隐藏元素
WebElement element = driver.findElement(By.<locator>); JavascriptExecutor executor = (JavascriptExecutor)driver; executor.executeScript("arguments[0].click()", element)
在我的情况下,我不得不点击一个按钮,只有在加载了一些图形然后是ajax图像后才可见 . 以下步骤帮助我解决了这个问题:
标识ajax调用完成后消失的
xpath/css
并明确等待它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之间插入隐式等待 .
使用 JavascriptExecutor . : -