【发布时间】:2016-08-05 01:39:41
【问题描述】:
我正在使用 Selenium 来定位一个元素并用文本填充它。当我浏览到我的 URL 时,首先会显示一个文本框来加载页面。加载应用程序后,将显示登录用户名/密码。我只想等到显示登录用户名/密码以避免 NoSuchElementException。我引用了this post,但无法让那里的任何解决方案发挥作用。
当我运行测试时,它不会等待元素出现并立即在 x.FindElement(By.Id("UserName") 上失败并返回 NoSuchElementException。
using (IWebDriver driver = new ChromeDriver(@"<my path>"))
{
driver.Manage().Window.Maximize();
driver.Navigate().GoToUrl("<my url>");
var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(600));
var userName = wait.Until(x => x.FindElement(By.Id("UserName")));
userName.SendKeys("username");
IWebElement pass = driver.FindElement(By.Id("Password"));
pass.SendKeys("password");
}
我在这里做错了什么?我应该如何更改我的代码以等待UserName id 出现后再查找它?
【问题讨论】: