我正在使用硒进行自动化测试。当测试在Selenium IDE上运行时,它会成功运行,然后在将其作为.Net Web驱动程序导出并使用NUnit运行时,将抛出NoSuchElementsException。请问某人造成这种例外的原因吗?
SeleniumTests.UserNotLogged.TheUserNotLoggedTest:
OpenQA.Selenium.NoSuchElementException:无法找到元素:{“method”:“link text”,“selector”:“”} //来自NUnit的异常
[Test]
public void TheUserNotLoggedTest()
{
driver.Navigate().GoToUrl(baseURL + "Index.aspx");
driver.FindElement(By.Id("wrapper")).Click();
driver.FindElement(By.LinkText("Home")).Click();
driver.FindElement(By.LinkText("News")).Click(); //Exception thrown here
driver.FindElement(By.LinkText("Events")).Click();
driver.FindElement(By.LinkText("Contact Us")).Click();
driver.FindElement(By.LinkText("Register")).Click();
}
感谢您的帮助
答案 0 :(得分:3)
在这种情况下,这通常是一个时间问题。我认为这些是导航链接?在这种情况下,很可能Selenium试图在页面加载完成之前找到新闻链接。尝试添加WebDriverWait:
http://seleniumhq.org/docs/04_webdriver_advanced.html
如果仍然无法解决问题,请转到另一种查找链接的方法,例如css选择器或XPath - 只是为了验证您是否可以使用其他方法找到它(尽管不是最好的方法)。