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

在对象初始化时指定的时间跨度之前抛出异常

安建木
2023-03-14

我正在使用selenium WebDriverWait对象动态控制代码中对象检测的超时。但此对象在WebDriverWait对象中指定的时间跨度用完之前超时。例如,我用10秒的超时时间跨度初始化了对象,但对象在大约2秒内超时。

这是我的密码

WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
try
{
  wait.Until(drv => (drv.FindElement(By.XPath(".//*[@class='TopTitle']"))));   //drv.FindElement(By.XPath(".//*[@class='TopTitle']")) throws exception
}
catch
{
  //exception handlers
}

我在调试模式下运行它,我可以清楚地看到drv。FindElement(By.XPath(".//*[@类='TopTitle']")) 在2-3秒内

异常和堆栈跟踪:

在OpenQA上找不到元素:{“方法”:“xpath”,“选择器”:“/*[@class='TopTitle']”}
。硒。遥远的RemoteWebDriver。打开OpenQA上的Rowner错误(响应错误响应)
。硒。遥远的RemoteWebDriver。在OpenQA上执行(字符串驱动程序命令执行,字典参数)
。硒。遥远的RemoteWebDriver。OpenQA中的FindElement(字符串机制、字符串值)
。硒。遥远的RemoteWebDriver。OpenQA上的FindElementByXPath(字符串xpath)
。硒。通过

共有1个答案

养聪
2023-03-14

WebDriverWait只处理某些类型的异常。您需要使用FluentWait自己处理其他类型的问题。忽略功能(WebDriverWait是FluentWait的扩展)。如果查看源代码,WebDriverWait似乎只忽略NotFoundException。独立上课。要忽略其他异常,需要添加catch类(或泛型catch子句)。注意:在TimeoutException的情况下。。。不要在ignering子句中使用它,而是将WebDriverWait包装在try-catch中,并在wait之外捕获TimeoutException。

 类似资料:
  • 让我们考虑一下这段代码: 抛出MyException时,对象初始化是如何完成的?这样地: 或者像这样(所以没有初始化): 我认为使用了第一种行为,比如语句,但是关于这一点的官方文档在哪里?

  • 问题内容: 我正在尝试制作2D切片游戏,当制作包含切片的阵列时,我得到了NullPointerException,这是一些代码。抱歉,如果格式不正确,请第一时间 公共类世界{ 然后在本课程中被称为(我相信这是问题的一部分) 公共类worldDraw { 问题答案: 创建对象数组时,将创建引用数组,但未分配引用。在尝试使用它们之前,必须先执行此操作。认为它类似于创建鸡蛋纸箱。在先将鸡蛋装满纸箱之前,

  • 我在做一个春靴项目。然后我尝试将mysql数据库连接到那个项目。我得到了名为“hikaripool-1-exception distry pool initialization”的错误。 这是整个StackTrace。

  • 问题内容: 我在用Java工作。 我通常会这样设置一些对象: 问题是:在此示例中是否等于,按原样我可以假定对未初始化的对象进行空检查将是准确的? 问题答案: 正确,未显式初始化的引用类型的静态成员和实例成员都由Java 设置为。相同的规则适用于数组成员。 根据Java语言规范的第4.12.5节: 变量的初始值 程序中的每个变量在使用值之前都必须具有一个值: 每个类变量,实例变量或数组组件在创建时均

  • 本文向大家介绍Shell定时删除指定时间之前的文件,包括了Shell定时删除指定时间之前的文件的使用技巧和注意事项,需要的朋友参考一下 最近世界杯来了,一直忙于工作和世界杯之间,都没有空来管管我的blog了,今天只能整个简单的小shell给大家了.公司要求删除一个月之前的备份文件,免得把硬盘给整爆了,上服务器看了下,居然都有3个月的备份没有清理了,还好是sql备份,不然硬盘空间早就满了. 下面是我

  • 前面一节的 Fruit 类有两个实变量,分别表述水果的类型和状态.直到为这个类写了一个定制的inspect方法,我们方才了解它不会对一个缺乏属性的水果做出合理的解释.幸运的是,Ruby提供了一种允许实变量总是被初始化的方法. initalize方法 当Ruby创建一个新对象时,它总是会寻找一个名为 initialize 的方法并执行它.因此,我们可以简单通过一个initialize方法向实变量中加