C#selenium webdriver chrome驱动程序等到模态窗口完全消失

时间:2013-11-12 01:36:35

标签: c# selenium webdriver selenium-chromedriver

我目前正在使用带有C#webdriver的chrome驱动程序。我面临的一个问题是等待“存在”或“可见”在我的情况下不起作用,因为模态窗口需要一些时间才能消失。我收到了这个错误:

System.InvalidOperationException:未知错误:元素在点(x,x)处无法点击。其他元素将收到点击:

原因是单击“确定/取消”后模态背景仍然存在几秒钟,但背景后面的元素是可见的并且可以点击到selenium。

那么我怎么“等待”直到模态背景完全消失才试图点击它背后的东西?这不是原生的javascript模式。它是一个奇特的第三方模式,可以通过透明的“封面”滑入和滑出视图,防止在打开时点击任何其他内容。

1 个答案:

答案 0 :(得分:3)

您可以使用ExpectedConditions API,例如:

var wait = new WebDriverWait(driver, TimeSpan.FromMinutes(1));
var element = wait.Until(ExpectedConditions.ElementIsClickable(By.Id("elementId")));

这将在1分钟内尝试,直到元素可点击,如果没有发生,它将抛出异常。