有时候按钮点击之后,才会build出我们需要的元素,这个时候往往需要时间去等待,如果单纯用隐式等待或用Thread.sleep,则无法确定什么时候才能加载完成,可能导致异常或时间的浪费。
隐式等待:允许Web页面中的元素在特定的时间内加载完成。如果超出了设定的时间,指定的元素仍没有被加载完,则抛出异常。
隐式等待的调用方式:driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10);
因此,可以采用wait until方法
//先引用,没有包的可以先去NuGet下载安装
using SeleniumExtras.WaitHelpers;
using OpenQA.Selenium;
//核心代码
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(20));
//我这里是根据className,这里根据自己的实际情况修改即可
wait.Until(ExpectedConditions.ElementExists((By.ClassName("gs_citr"))));
技术:OpenQA.Selenium、C#