【问题标题】:Selenium FindElement working for Firefox but not for IESelenium FindElement 适用于 Firefox 但不适用于 IE
【发布时间】:2016-09-20 14:34:17
【问题描述】:

所以我开始学习使用 Selenium 和 C# 的自动化,问题是我可以导航到我的 facebook、google 以及所有在 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");

这是火狐代码

        IWebDriver driver = new FirefoxDriver();
        driver.Navigate().GoToUrl("http://www.google.com");
        driver.FindElement(By.Name("q")).SendKeys("Hello World");

【问题讨论】:

    标签: c# selenium


    【解决方案1】:

    这可能是两个浏览器的时间问题。您应该尝试使用WebDriverWait 使用更稳定的代码来等到元素在交互之前可见:-

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

    【讨论】: