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

问题描述:

所以我开始学习使用Selenium和C#的自动化,问题是我可以导航到我的Facebook,谷歌什么和所有在Firefox上的作品很好。但是,当使用IE浏览器时,它会打开网页,但会引发错误“NoSuchElementException”。我使用相同的代码,其中一个不工作。 这里是IE代码Selenium FindElement适用于Firefox,但不适用于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"); 

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

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

IWAIT不存在,你用什么包是什么? –

+0

关注此https://seleniumhq.github.io/selenium/docs/api/dotnet/html/T_OpenQA_Selenium_Support_UI_IWait_1.htm –