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

Selenium Explicit Wait(WebDriverWait)不能使用类型WebElement

高承望
2023-03-14
driver= new InternetExplorerDriver(cap);
driver.get("http://Myurl.com"); 
WebDriverWait wait= new WebDriverWait(driver,10);   

案例1:wait.until(ExpectedConditions.ElementToBeclickable(By.id(“tesr”)));对于上面的代码,驱动程序在抛出异常之前等待大约10秒,但是如果使用下面的代码传递WebElement以函数“ElementToBeclickable”,它会在大约500 ms后抛出异常

案例2:wait.until(ExpectedConditions.ElementToBeclickable(Driver.FindElement(By.id(“Tesr”))));

请任何人告诉我为什么情况2驱动程序没有等待到超时值。

共有1个答案

王英奕
2023-03-14

当您在显式等待函数中使用driver.findElement时,driver.findElement将优先执行。这仅仅意味着WebDriver尝试查找元素并将找到的元素提供给ExpectedConditions.ElementToBeclickable方法。因此,在尝试查找元素时,只考虑隐式等待(全局等待),并且由于您的情况下的隐式等待为500ms且未找到元素,因此抛出nosuchelementexception

不,如果异常是从隐式wait中抛出的,您将得到timeoutexception。相反,您应该得到nosuchelementException,它来自driver.findelement方法。

 类似资料:
  • 问题内容: (从Java-Selenium迁移到C#-Selenium) 当使用Selenium和C#搜索 显式等待时 ,我发现一些帖子的代码看起来类似于Java-Counterpart: 例如在这里: 或在这里: WebDriverWait来自OpenQA.Selenium.Support.UI命名空间,并位于一个单独的名为Selenium WebDriver支持类的程序包中 但是: 当我尝试在

  • 问题内容: ./chains.go:26:10:不能在作业中使用UpperCaseHandler(typefunc(asl.MessageDelivery))作为asl.MessageHandler类型./chains.go:37:86:无法使用RepeatHandler(类型func(asl.MessageDelivery))与Repeater.ConsumeFunc的参数中的asl.Messa

  • 在我的Spring Boot应用程序中,我尝试实现模板方法,在我的具体类中,我尝试使用泛型,如下所示: 模板界面:不确定我是否需要使用它? 模板抽象类: 混凝土等级: 我在dto中得到“无法解析‘T’中的方法‘getName’”。getName()行输入AbstractPDFGenerator。 我的问题是: 1.为了解决这个问题,我想从继承和的基类扩展T。但是,我不想从基类继承它们,因为它们没有

  • 问题内容: 我在超类中定义了一个变量,并尝试在子类中引用它,但是实例成员上出现错误,无法在类型上使用 它出什么问题了?非常感谢 问题答案: 在下面的示例中可以看到,方法参数的默认值是在类作用域而不是实例作用域上求值的: 没有它将无法编译。 应用于您的案例意味着您必须将用作默认值的属性设为静态: (请注意,是在同一类中还是在超类中定义该属性都与该问题无关。)

  • 问题内容: 我在Swift中创建了一个非常简单的算命应用程序,并且不断遇到的问题。目前,我只是想让该应用程序随机绘制一个字符串,但出现一条错误消息: 实例成员’fortuneArray’不能用于’ViewController’类型 在我声明变量的行上。我已经使用Google一段时间了,但没有找到解决方法。希望有人可以帮助,谢谢! 更新 问题已解决!谢谢。 问题答案: 如果您粘贴的代码未在诸如之类的

  • 我们有一些lob和varchar2类型的数据被错误地编码为AL32UTF8,我们需要将其编码转换为we8mswin1252字符集。我得到了用于字符集转换的convert函数,这个函数在varchar2 datatype中工作得很好,但在CLOB中使用时给出了一些模糊的字符。我当前的编码是AL32UTF8。 数据库:Oracle 12c