使用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
<input class="valid" id="input1" name="input1" value="http://dddd" nametemplate="url_to_5D" type="text">
答案 0 :(得分: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)
操作。