当前位置: 首页 > 知识库问答 >
问题:

C#selenium webdriver chrome driver等待模式窗口完全消失

姜德容
2023-03-14

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

那么我该如何“等待”直到模态背景完全消失后才尝试点击它背后的东西呢?这不是本机javascript模式。这是一种别出心裁的第三方模式,它用一个透明的“盖子”滑进滑出,当它打开时,可以防止点击其他任何东西。

共有1个答案

夹谷星河
2023-03-14

您可以使用ExpectedConditions API,例如:

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

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

 类似资料:
  • 问题内容: 我正在执行浏览器自动化,并且在某个时候被阻止:稍后,我要求浏览器单击一个按钮,该按钮又打开一个新窗口。但是有时Internet太慢,因此加载新窗口需要时间。我想知道如何让Selenium等待,直到这个新窗口完全加载完毕。 这是我的代码: 我不时收到此错误: newNewWindow = newWindow [1] IndexError:列表索引超出范围 这让我认为简单的“ time.s

  • 我在寻找一种方法来等待一个窗口弹出,你不知道的名字。我在找这样的东西:

  • 这段代码适用于发送数据并关闭连接的客户机,但是当使用一个连接的客户机多次发送时,数据没有被读取->我应该在读取完整正文后关闭连接吗?

  • 我通读了Dart/flatter中的Async/Await/then,试图理解为什么aysnc函数中的Await不会等到完成后再继续。在我的UI中,有一个按钮调用一个异步方法来返回一个位置,该位置总是返回null,并且不等待函数完成。 该函数将调用推送到一个新的UI页面,该页面选择一个位置,并应返回一个结果。如何使该函数等待结果?我不是在使用异步吗?

  • 我正在尝试使用JavaFX 2创建一个登录窗口并停止执行,直到用户尚未登录。我想要类似下面的东西: 负责创建一个新阶段,并将其父级设置为主窗口。它将舞台设置为模态,我尝试了和,但是一旦显示登录窗口,也会调用行。 有没有可能在登录阶段的< code>close()被调用之前停止代码运行,或者类似的事情?有没有教程展示如何做到这一点?

  • 我试过下面的方法,但效果不理想。