首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Selenium c#:等待元素出现而不等待给定的时间,否则超时

Selenium c#:等待元素出现而不等待给定的时间,否则超时
EN

Stack Overflow用户
提问于 2017-05-18 04:18:21
回答 1查看 8.5K关注 0票数 3

为了进一步解释,我目前正在使用selenium和c#。我的问题是,我的工具运行得非常快,不需要等待元素的准备。

例如,Thread.Sleep()是不可取的。

给定的等待时间是2秒。元素将出现在一个或多个秒内。在Thread.Sleep()之后,所以代码行不可靠。

或者元素存在,但仍在等待完成Thread.Sleep(),因此很费时。

我想要的是,如果找到了元素,那么就不需要等待给定的时间,如果没有在给定的时间找到,则超时。

EN

回答 1

Stack Overflow用户

发布于 2017-05-18 04:31:10

这正是显式等待预期条件的作用所在。

使用示例

代码语言:javascript
运行
复制
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(5));
IWebElement element = wait.Until(ExpectedConditions.ElementIsVisible(By locator));

这将等待提高到5秒,以使元素可见。如果成功,元素将被返回,否则将抛出TimeoutException

更新

ExpectedConditions已经移动,现在位于SeleniumExtras.WaitHelpers

“ExpectedConditions”已经过时:“不再推荐.NET绑定中的ExpectedConditions实现,并将在以后的版本中删除。

为了避免现有代码中的许多更改,将ExpectedConditions导入到一个名为ExpectedConditions的变量中。代码的其余部分保持不变

代码语言:javascript
运行
复制
using ExpectedConditions = SeleniumExtras.WaitHelpers.ExpectedConditions;
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44038509

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档