0

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

System.InvalidOperationException:未知错误:元素在点 (x,x) 处不可点击。其他元素会收到点击:

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

那么我如何“等待”直到模态背景完全消失,然后再尝试点击它后面的东西?这不是原生 javascript 模式。这是一种精美的第三方模式,可以通过透明的“封面”滑入和滑出视图,当它打开时可以防止点击其他任何东西。

4

1 回答 1

4

您可以使用 ExpectedConditions API,例如:

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

这将在 1 分钟内尝试,直到元素可点击并且它没有发生它会引发异常。

于 2013-11-13T00:09:51.997 回答