所以我开始学习使用Selenium和C#的自动化,问题是我可以导航到我的脸书,谷歌什么都有,所有在Firefox上都很好用。但是当使用IE浏览器时,它会打开网页,但会抛出错误'NoSuchElementException'。我使用相同的代码,一个工作一个没有。 这是IE代码
IWebDriver driver = new InternetExplorerDriver(@"C:\folder");
driver.Navigate().GoToUrl("http://www.google.com");
driver.FindElement(By.Name("q")).SendKeys("Hello World");
这是firefox代码
IWebDriver driver = new FirefoxDriver();
driver.Navigate().GoToUrl("http://www.google.com");
driver.FindElement(By.Name("q")).SendKeys("Hello World");
答案 0 :(得分:0)
这可能是两个浏览器的计时问题。您应该尝试使用WebDriverWait
使用更稳定的代码,等待元素在交互之前可见,如下所示: -
IWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
IWebElement element = wait.Until(ExpectedConditions.ElementIsVisible(By.Name("q")));
element.SendKeys("Hello World");