如何在 Selenium 中结合隐式和显式超时?

2024-04-06

我正在使用带有隐式超时的 Selenium ChromeDriver:

_driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(5);

在我的一项测试中,我想用明确的超时来覆盖它。在读取属性之前,我明确等待找到该元素:

WebDriverWait wait = new WebDriverWait(_driver, TimeSpan.FromSeconds(120));
wait.Until(d => d.FindElement(By.CssSelector("div.example")));

我预计需要 120 秒才能尝试找到该元素,但仅 5 秒后就超时了。


根据文档显式和隐式等待 https://www.seleniumhq.org/docs/04_webdriver_advanced.jsp#explicit-and-implicit-waits其中明确提到:

不要混在一起implicit and explicit等待。这样做可能会导致不可预测的等待时间。例如,设置 10 秒的隐式等待和 15 秒的显式等待,可能会导致 20 秒后发生超时。

仍然如果你有隐式超时定义为:

_driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(5);

诱导前显式等待为了找到该元素,您需要删除隐式超时如下:

_driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(0);
WebDriverWait wait = new WebDriverWait(_driver, TimeSpan.FromSeconds(120));
wait.Until(d => d.FindElement(By.CssSelector("div.example")));

一旦你完成了显式等待,您可以重新配置回来隐式超时再次为:

_driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(0);
WebDriverWait wait = new WebDriverWait(_driver, TimeSpan.FromSeconds(120));
wait.Until(d => d.FindElement(By.CssSelector("div.example")));
//perform your action with the element
_driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(5);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Selenium 中结合隐式和显式超时? 的相关文章

  • 将 new 与 decltype 一起使用

    T t T is an implementation detail t new T want to avoid naming T to allow for flexibility t new decltype t error cannot
  • 为什么 F# 的默认集合是排序的,而 C# 的不是?

    当从 C 世界迁移到 F 最惯用的可能 思维方式时 我发现了这个有趣的差异 在 C 的 OOP mutable 世界中 默认的集合集合似乎是HashSet https learn microsoft com en us dotnet api
  • 单元测试验证失败

    我正在运行我的单元测试PostMyModel路线 然而 在PostMyModel 我用的是线Validate
  • 在 OnModelCreating 期间设置列名称

    Issue 我目前正在尝试通过设置的属性为我的表及其列添加前缀 我正在使用实体框架核心 我已经正确地为表名添加了前缀 但我似乎无法弄清楚列的前缀 我有一种感觉 我需要使用反射 我已经留下了我的 可能很糟糕的 反思尝试 有人有办法在实体中设置
  • 将完整模板参数值映射到原始类型

    我想将数字映射到类型 在这个例子中 我将创建一个函数 将 sizeof 结果映射到有符号的原始类型 我想知道是否有更好的方法来完成我在现代 C 中所做的事情 即采用模板化值并将其转换为类型 现在 这可以将大小转换为已知类型 但我似乎无法在标
  • CSharpRepl emacs 集成?

    我碰巧知道莫诺CSharpRepl http www mono project com CsharpRepl 是否有 emacs csharp 模式使用它在一个窗口中运行 REPL 并像 python 模式一样在另一个窗口中编译 运行 C
  • std::call_once 可重入且线程安全吗?

    std call once http en cppreference com w cpp thread call once是线程安全的 但它也是可重入的吗 我使用 VS2012 调试和发布 进行的测试表明 调用std call once从单
  • 从模板切换传递的类型

    在 C 中是否可以检查传递给模板函数的类型 例如 template
  • 将表(行)与 OpenXML SDK 2.5 保持在一起

    我想在 Word 文档中生成多个表 每行 2 行 但我想将这两行保留在一起 如果可能的话 new KeepNext 第一行不起作用 new KeepNext 第一行的最后一段不起作用 new CantSplit 放在桌子上不起作用 在所有情
  • 访问 ascx 文件中的母版页控件

    我有一个母版页文件 其中包含 2 个面板控件中的 2 个菜单 我还使用控件来检查用户是否登录并获取用户类型 根据我想要显示 隐藏面板的类型 控件本身不在母版页中引用 而是通过 CMS 系统动态引用 我想在用户控件中使用findcontrol
  • 增强精神、递归和堆栈溢出

    为什么下面的代码在运行时崩溃 它会给出堆栈溢出错误 include
  • C# 编译器不会优化不必要的强制转换

    前几天 在写答案的时候这个问题 https stackoverflow com questions 2208315 why is any slower than contains在这里 关于溢出 我对 C 编译器感到有点惊讶 它没有按照我的
  • 引用/指针失效到底是什么?

    我找不到任何定义指针 引用无效在标准中 我问这个问题是因为我刚刚发现 C 11 禁止字符串的写时复制 COW 据我了解 如果应用了 COW 那么p仍然是一个有效的指针并且r以下命令后的有效参考 std string s abc std st
  • 为什么 Cdecl 调用在“标准”P/Invoke 约定中经常不匹配?

    我正在开发一个相当大的代码库 其中 C 功能是从 C P Invoked 的 我们的代码库中有很多调用 例如 C extern C int stdcall InvokedFunction int 使用相应的 C DllImport CPlu
  • 如何从 Rx Subscribe 回调异步函数?

    我想回调 Rx 订阅中的异步函数 例如 像那样 public class Consumer private readonly Service service new Service public ReplaySubject
  • 使用 jQuery 从 ASP.Net JSON 服务获取数据

    我正在尝试调用 Google 地图地理编码 API 从纬度 经度对中获取格式化的地址 然后将其记录到控制台 我正在尝试获取为给定位置返回的第一个 formatted address 项目 我很简单无法从 JSON 中提取该项目 我不知道为什
  • CUDA 8 编译错误 -std=gnu++11

    我正在尝试转换一些代码以使用 CUDA 并且我认为我遇到了兼容性问题 我们使用CMake 这些是我使用的 gcc 和 CUDA 版本 gcc version gcc Ubuntu 5 4 0 6ubuntu1 16 04 5 5 4 0 2
  • 如何在 winforms 应用程序的主屏幕显示之前显示欢迎屏幕?

    我想在应用程序启动时加载欢迎屏幕 然后用户单击欢迎屏幕上的按钮 然后关闭欢迎屏幕 最后显示主屏幕 static void Main startup method being called Application EnableVisualSt
  • INotifyPropertyChanged 和 propertyName

    我一直不确定它的含义propertyName实施时INotifyPropertyChanged 所以一般来说你实现INotifyPropertyChanged as public class Data INotifyPropertyChan
  • 如何将 SQL“LIKE”与 LINQ to Entities 结合使用?

    我有一个文本框 允许用户指定搜索字符串 包括通配符 例如 Joh Johnson mit ack on 在使用 LINQ to Entities 之前 我有一个存储过程 该存储过程将该字符串作为参数并执行以下操作 SELECT FROM T

随机推荐

  • 方程编号与 Rmarkdown 中的预览到 pdf?

    在 Rmarkdown 中 编织为 PDF 如果我写一个等式 begin equation y x 2 end equation 然后我在 PDF 输出中得到一个编号方程 如果我写一个等式 y x 3 那么方程就没有编号 我喜欢能够控制哪些
  • 如何阅读/改进 PHP 计算的 C.R.A.P 指数

    我刚刚开始使用 PHPUnit 及其丰富多彩的代码覆盖率报告 我了解所有的数字和百分比 除了一个 C R A P 指数 谁能给我一个可靠的解释 解释它的含义 如何分析它以及如何降低它 Toader Mihai 提供了可靠的解释 https
  • 如何使用 docker-compose 重启单个容器

    我有一个docker compose yml包含 4 个容器的文件 redis postgres api and worker 在开发过程中worker容器 我经常需要重新启动它才能应用更改 有什么好的方法可以重新启动单个容器 例如work
  • 如何检查一个字符是否等于一个空格?

    这是我所得到的 private static int countNumChars String s for char c s toCharArray if Equals c 但该代码表示 找不到该方法的符号 我记得 Java 有一个这样的比
  • 基本路径覆盖有什么意义?

    文章位于onjava http www onjava com pub a onjava 2007 03 02 statement branch and path coverage testing in java html page 2似乎意
  • 无法在 Win 7 Prof 上以 64 位模式运行 CMD

    我已经完成了我的作业 诚实地尝试了我能想到的一切 但似乎每次我打开 CMD 时 我都会得到 32 位版本 无论我从哪里打开它 我努力了 Windows 启动 orb gt CMD gt 输入 输入 C Windows System32 cm
  • 尝试启动 TunnelProvider 网络扩展时出现 NEVPNErrorDomain 错误 1

    我正在尝试通过从 TunnelProvider 的 XCode 模板开始 然后将代码添加到主机应用程序来配置并启动它来制作自定义 TunnelProvider 网络扩展 我正在使用 NETunnelProviderManager 的实例来配
  • 如何使用冒泡排序在 Python 3 中对列表进行排序和子排序

    我正在为我正在学习的课程解答一个额外问题 假设我们有一个列表 例如mylist a1 b2 a3 c1 b1 a5 b3 c9 我想使用基本的Python而不导入任何东西 我想首先按字母顺序对列表进行排序 然后对于每个字母 我按数字排序 因
  • 拖放到桌面图标上

    我想这应该很简单 我在这里看过类似的问题 但我的旧大脑并不清楚它应该如何工作 我有一个 Windows 窗体应用程序 我的用户想要将文件拖到桌面上的应用程序图标上 并使用该文件执行程序 所以我想做的是 接受图标上放置的文件 启动应用程序并将
  • App Engine 从 JsonProperty 返回 JSON

    我喜欢如何JsonProperty当属性放入数据存储时 自动将 Python 结构编码为 JSON 并在检索时自动解码 但是 最好将该 JSON 数据发送到 Web 浏览器 而无需再次对其进行编码 有没有办法获取原始 JSON 数据 即阻止
  • 线程本地存储开销

    假设有一些不可重入函数使用全局变量 int i void foo void modify i 然后 我想在多线程代码中使用这个函数 所以我可以这样更改代码 void foo int i modify i 或者 通过使用 gcc thread
  • Java Swing - Repaint() 无法正常工作

    我从以下位置获取程序这个话题 https stackoverflow com questions 8693342 drawing a simple line graph in java 我尝试在实时模式下编辑点 我将 MouseMotion
  • API 和 ABI 之间的区别

    我是 Linux 系统编程新手 在阅读时遇到了 API 和 ABILinux系统编程 API定义 API 定义了接口 通过这些接口 一个软件可以进行通信 与源级别的另一个 ABI的定义 而 API 定义了源 接口 ABI 定义了 两者之间的
  • Xpath 选择包含特定列表子集的元素

    再会 假设以下 XML
  • “ps aux”有效,但“ps -aux”无效

    这似乎是一个愚蠢的问题 但我一直无法找到明确的答案 这个网站 http www linfo org ps html表明破折号是可选的 ps aux 然而 ps aux有效但是ps aux引发错误no user named x 有什么想法可能
  • 无法解析方法“registerForActivityResult”

    我正在构建一个自定义电容器插件来获取用户的电话号码 我将电容器 3 与 Ionic 6 一起使用 我找到了一个未被弃用的解决方案 并且是最近才获取用户的电话号码 这是我获取电话号码的代码 private void requestHint H
  • Chrome在浏览器后退按钮上再次执行所有JS

    我正在开发一个网络应用程序 我编写了一些 JS 脚本 以便在文档就绪时执行 但是在 Chrome 中 当我们单击后退按钮并返回到上一页时 它会再次执行所有 js 脚本 但是当我在 Firefox 上使用相同的方法时 它不会执行 JS 我在页
  • R 中的子列表命名

    假设我有一个包含 3 个子列表的列表 每个子列表携带 3 个数据帧 它看起来像这样 数据在最后 然后假设我有 2 个向量 j lt seq 10 20 length out 3 v lt seq 0 1 length out 3 我想创建一
  • 我应该将 Visual Studio 调试器附加到哪个进程来调试 Kestrel 应用程序?

    我正在启动命令行并使用运行我的应用程序dotnet run命令 这将启动 Kestrel 并显示我的应用程序 我应该如何确定要附加调试器的进程 以便可以调试 Kestrel 现在托管的网站 我特别需要能够这样做 这意味着我不能使用标准 F5
  • 如何在 Selenium 中结合隐式和显式超时?

    我正在使用带有隐式超时的 Selenium ChromeDriver driver Manage Timeouts ImplicitWait TimeSpan FromSeconds 5 在我的一项测试中 我想用明确的超时来覆盖它 在读取属