我有一个输入框,可以提取自动完成列表。这个列表拉得有点慢,所以我需要selenium才能在按下回车键之前等待,这将选择列表中的第一项。这是我到目前为止所拥有的
webDriver.FindElement(By.Id("seg-gl-1")).SendKeys("2");
webDriver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10);
webDriver.FindElement(By.Id("seg-gl-1")).SendKeys(Keys.Enter);
问题在于硒的进入太快了。我相信我错误地使用了implicitwait
。谁能解释一下我的问题?
答案 0 :(得分:1)
使用时
webDriver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10);
您只设置默认的ImplicitWait时间。如果你想实际执行等待,比方说10秒,你可以使用
System.Threading.Thread.Sleep(5000);
通常你应该避免这种类型的等待,但我猜测你的应用程序后台执行了javascript / ajax调用,因此你应该等待这些调用才能在断言网站之前执行行为(因为这些调用可能会更新DOM等)。如需进一步的帮助,请参阅此主题中的答案:https://stackoverflow.com/a/45033412/6220192