我想在我的代码中使用隐式或显式等待。但是它不适用于chrome驱动程序。有没有任何特殊的补丁可以使用?但是同样的是适用于firefoxdriver。我的应用程序只支持chrome,所以我没有选择使用其他浏览器。请帮助我如何使用-等待-加载元素或任何其他解决方案可用?
lo8azlld1#
按照以下方式使用显式等待:
WebElement Element = (new WebDriverWait(driver, 30)) .until(ExpectedConditions.elementToBeClickable(By.className("progress_bg"))); Element.click();
你可以使用Id,Xpath或任何其他元素的定位器。我已经按照你的评论在上面使用了类。
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上的所有测试都运行良好。
2条答案
按热度按时间lo8azlld1#
按照以下方式使用显式等待:
你可以使用Id,Xpath或任何其他元素的定位器。我已经按照你的评论在上面使用了类。
6pp0gazn2#
显式等待
隐式等待
另外,请尝试下载最新版本的ChromeDriver-https://code.google.com/p/selenium/wiki/ChromeDriver
并将WebDriver NuGet更新到最新的可用版本-我想是2. 45。
按照这些步骤,我在Chrome上的所有测试都运行良好。