Selenium FindElement适用于Firefox但不适用于IE

时间:2016-09-20 14:34:18

标签: c# selenium

所以我开始学习使用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");

1 个答案:

答案 0 :(得分:0)

这可能是两个浏览器的计时问题。您应该尝试使用WebDriverWait使用更稳定的代码,等待元素在交互之前可见,如下所示: -

IWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
IWebElement element = wait.Until(ExpectedConditions.ElementIsVisible(By.Name("q")));
element.SendKeys("Hello World");