gpt4 book ai didi

c# - Selenium c# : Wait Until Element is Present Without Waiting the Time Given, 否则超时

转载 作者:行者123 更新时间:2023-11-30 15:58:00 26 4
gpt4 key购买 nike

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

例如,

Thread.Sleep() 是不可取的。

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

或者该元素存在但仍在等待完成 Thread.Sleep() 所以它很耗时。

我想要的是,如果找到元素则无需在给定时间等待,如果在给定时间未找到则超时。

最佳答案

这正是explicit waitexpected conditions是为了。

使用示例

WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(5));
IWebElement element = wait.Until(ExpectedConditions.ElementIsVisible(By locator));

这将等待最多 5 秒让元素可见。如果成功,元素将被返回,否则将抛出 TimeoutException

更新

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

'ExpectedConditions' is obsolete: 'The ExpectedConditions implementation in the .NET bindings is deprecated and will be removed in a future release. This portion of the code has been migrated to the DotNetSeleniumExtras repository on GitHub (https://github.com/DotNetSeleniumTools/DotNetSeleniumExtras)'

为避免对现有代码进行过多更改,将 ExpectedConditions 导入到名为 ExpectedConditions 的变量中。其余代码保持不变

using ExpectedConditions = SeleniumExtras.WaitHelpers.ExpectedConditions;

关于c# - Selenium c# : Wait Until Element is Present Without Waiting the Time Given, 否则超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44038509/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com