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");
IWAIT不存在,你用什么包是什么? –
关注此https://seleniumhq.github.io/selenium/docs/api/dotnet/html/T_OpenQA_Selenium_Support_UI_IWait_1.htm –