2016-08-12 148 views
9

我想单击页面顶部的按钮。我使用CSS选择器,它在我当地的eclipse中运行它时工作得很好。但是当我尝试运行它时在本地机器上的Jenkins服务器上,它失败,说元素不可点击。 当我在Jenkins上看到失败测试的截图时,我发现头部与我想单击的按钮重叠。 我已经尝试了几乎所有使用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> 
+0

没有一些HTML预览/硒代码很难帮助 – Dekel

+0

@Dekel更新了帖子。感谢您的建议。 – Samantha

+0

''元素,我使用'.submit()'而不是'.click()'方法修复了类似的问题。 – jfs

回答

16
Element is not clickable at point (775.25, 10.166671752929688). Other element would receive the click: <div class="globalHeader-UtilTop"></div> 

它清楚地说,我们要点击是在这种情况下一些其他的元素隐藏的div元素,这将收到的点击。

我认为这是与用户界面和头部不应该隐藏元素问题,但你可以尝试几件事情:1。 从最大化webdriver的浏览器窗口,看看标题仍然隐藏元素

driver.manage().window().maximize() 
  • 使用JavaScript点击元素 WebElement element = driver.findElement(By.<locator>); JavascriptExecutor executor = (JavascriptExecutor)driver; executor.executeScript("arguments[0].click()", element)
  • +0

    你是如何定义“驱动程序”变量的? – nix86

    +0

    @ nix86此答案中的代码是伪代码。 “driver”变量是WebDriver接口实现的一个实例(请参阅https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/WebDriver.html)。 – Stephan

    0

    林我的情况,我必须点击一个按钮几个图表是只加载后这将是可见的,那么阿贾克斯图片。下面的步骤帮助我解决这个问题:

    1. 确定哪些Ajax调用后消失的xpath/css是完整的,明确等待它是invisible-wait.until(ExpectedConditions.invisibilityOf(element));

    2. 一个更明确的等待按钮是clickable-wait.until(ExpectedConditions.elementToBeClickable(element));

    3. 使用JavaScript点击按钮 -

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

    如果还是这不起作用尝试插入步骤1和2

    +0

    不明白downvote,当click()和driver.actions()。click()不起作用时,executeScript适用于我 –

    0

    使用JavascriptExecutor之间的隐含的等待: - 。

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