Selenium webdriver -chrome驱动程序的隐式等待

hgncfbus  于 2023-01-26  发布在  其他
关注(0)|答案(2)|浏览(220)

我想在我的代码中使用隐式或显式等待。但是它不适用于chrome驱动程序。有没有任何特殊的补丁可以使用?但是同样的是适用于firefoxdriver。
我的应用程序只支持chrome,所以我没有选择使用其他浏览器。请帮助我如何使用-等待-加载元素或任何其他解决方案可用?

lo8azlld

lo8azlld1#

按照以下方式使用显式等待:

WebElement Element = (new WebDriverWait(driver, 30))
              .until(ExpectedConditions.elementToBeClickable(By.className("progress_bg")));

Element.click();

你可以使用Id,Xpath或任何其他元素的定位器。我已经按照你的评论在上面使用了类。

6pp0gazn

6pp0gazn2#

显式等待

WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10)); 

IWebElement myDynamicElement = wait.Until<IWebElement>((d) => { return d.FindElement(By.Id("someDynamicElement")); });

隐式等待

driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(10));

另外,请尝试下载最新版本的ChromeDriver-https://code.google.com/p/selenium/wiki/ChromeDriver
并将WebDriver NuGet更新到最新的可用版本-我想是2. 45。
按照这些步骤,我在Chrome上的所有测试都运行良好。

相关问题