在selenium Chrome驱动程序中获取点击例外时,是否可以点击?

时间:2016-09-20 20:37:26

标签: selenium selenium-webdriver tfsbuild selenium-chromedriver

我们已经构建了一个网站很长一段时间,我正在实现UI UnitTesting。

它在很大程度上依赖于使用“代理”覆盖按钮以允许更多功能,例如从一个iframe拖动到另一个iframe。从测试的角度来看,我想/需要“点击”按钮。它应该单击覆盖在其上的代理元素。然后测试可以继续。这适用于IE甚至Chrome,但是当我们在Build Server上进行测试时,它失败并出现错误

  

引发异常:System.InvalidOperationException:未知错误:   元素在点(265,87)处不可点击。其他元素会   收到点击:div class =“v-iframe-proxy”style =“width:100%;   身高:100%;“/ div

我希望有一种方法可以忽略这种情况并且无论如何都会点击。任何帮助都会很棒。

2 个答案:

答案 0 :(得分:2)

我相信你有三个选择: 1.使用以下JavaScript执行单击:

((JavascriptExecutor) webdriver).executeScript("arguments[0].click()", elementToClick);
  1. 尝试使用new Actions(webdriver).click().build().perform();
  2. 点击
  3. 使用try catch环绕您的点击并继续执行。

答案 1 :(得分:0)

我认为您的UI测试适用于服务器端的无头浏览器。所以你需要先设置宽度和高度。

如果您打印窗口大小,您将看到:0,0

System.out.println(driver.manage().window().getSize());

因此,您可以将窗口大小设置为1024x600(或任何您想要的):

Dimension d = new Dimension(1024,600);
driver.manage().window().setSize(d);