由于我的测试网站上的同步速度很慢,我需要等待页面完全加载。我尝试了几个元素等待,例如:
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(50));
wait.Until(ExpectedConditions.ElementExists(By.XPath("//input[@placeholder='First Name']"))).SendKeys("FirstName");
我也尝试过使用 JavaScript 方法,例如:
public static void WaitForLoadOriginal(IWebDriver driver)
{
IJavaScriptExecutor js = (IJavaScriptExecutor)driver;
int timeoutSec = 15;
WebDriverWait wait = new WebDriverWait(driver, new TimeSpan(0, 0, timeoutSec));
wait.Until(wd => js.ExecuteScript("return document.readyState").ToString() == "complete");
}
这是我尝试选择的代码
<select name="question" id="question1" type="text" class="form-control ng-pristine ng-empty ng-invalid ng-invalid-required ng-touched" ng-required="true"
这是我得到的例外:
WebDriver.Support.dll 中出现“OpenQA.Selenium.NoSuchElementException”类型的异常,但未在用户代码中处理 $exception {"Cannot locate option with index: 1"} OpenQA.Selenium.NoSuchElementException
如果我Thread.Sleep(20000)
输入,它工作正常。但我不想使用静态等待。要么我没有正确使用上述方法,要么它们不起作用。任何帮助,将不胜感激。