使用C#我试图像这样替换输入框中的值
for (int second = 0; ; second++) { if (second >= 60) Assert.Fail("timeout"); if (second > 15) break; Thread.Sleep(1000); } driver.FindElement(By.Id("input1")).Clear(); driver.FindElement(By.Id("input1")).SendKeys(xxxx");
但是我在clear()行上得到错误"元素当前不是难以处理并且可能不被操作",为什么我会等到页面加载?
HTML
Grzegorz Gór.. 6
您可以尝试等待它:
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10)); IWebElement element = wait.Until(ExpectedConditions.ElementExists(By.Id("input1")));
然后:
element.Clear(); element.SendKeys("xxxx");
要让您的驱动程序在任何操作之前等待:
driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(10));
如果您使用上述代码,则可以删除所有Thread.Sleep(1000)
操作.
您可以尝试等待它:
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10)); IWebElement element = wait.Until(ExpectedConditions.ElementExists(By.Id("input1")));
然后:
element.Clear(); element.SendKeys("xxxx");
要让您的驱动程序在任何操作之前等待:
driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(10));
如果您使用上述代码,则可以删除所有Thread.Sleep(1000)
操作.