令人沮丧的ElementNotVisibleException错误

时间:2015-08-27 02:45:09

标签: java selenium

当我尝试点击按钮时出现以下错误:

org.openqa.selenium.ElementNotVisibleException: Element is not currently visible and so may not be interacted with

命令持续时间或超时:10.06秒

我尝试了以下内容,但都没有效果:

1)如果正在加载页面,则等待10秒

2)因此使用了JS执行器:

JavascriptExecutor executor = (JavascriptExecutor) driver;
executor.executeScript("arguments[0].click();", By.cssSelector("#IconButton > input.IconButtonDisplay"));

3)使用等到元素可见

实际执行了第2号但是点击的结果没有结束,即新页面没有打开。

第3次出现说明按钮不可见,但按钮可见,可以手动点击。

我可以告诉你的是,使用Selenium IDE我能够播放并点击按钮没有问题。

按钮的HTML(此处不能过多地作为专有信息)。抱歉格式化:

<div widgetid="dijit__WidgetsInTemplateMixin_13" id="dijit__WidgetsInTemplateMixin_13" class="gridxCellWidget">
  <div class="IconButton" widgetid="IconButton" id="IconButton" data-dojo-type="ab.cd.ef.gh.IconButton" data-dojo-attach-point="rowBtn1Pt">
    <input class="IconButtonDisplay" src="/tswApp/ab/cd/ef/gh/images/edit.png" style="width: 20px;" type="image">
  </div>
</div>

3 个答案:

答案 0 :(得分:1)

在Javascript执行程序中,您希望传递WebElement的实例而不是By选择器。所以改变

/home/user1/docker

JavascriptExecutor executor = (JavascriptExecutor) driver;
executor.executeScript("arguments[0].click();",   By.cssSelector("#IconButton > input.IconButtonDisplay"));

答案 1 :(得分:1)

您是否尝试过使用FirefoxDriver?

FirefoxDriver driver = new FirefoxDriver();

您是否尝试过使用此功能?这不够独特吗?

    driver.findElement(By.cssSelector("input.IconButtonDisplay")).click();

如果没有,试试这个(它等同于你用JSE做的事情)

    driver.findElement(By.cssSelector("#IconButton > input.IconButtonDisplay")).click();

也许它不是点击的INPUT?您是否尝试过单击任一父DIV?

driver.findElement(By.id("IconButton")).click();

driver.findElement(By.id("dijit__WidgetsInTemplateMixin_13")).click();

答案 2 :(得分:-1)

对我而言,这是有效的:

   JavascriptLibrary jsLib = new JavascriptLibrary(); 
   jsLib.callEmbeddedSelenium(driver,"triggerMouseEventAt", editButton,"click", "0,0");

希望这可以帮助那些遇到同样问题的人。