Selenium-C#-Webdriver-找不到元素
在C#中使用selenium,我试图打开浏览器,导航到Google并找到文本搜索字段 我尝试下面的方法Selenium-C#-Webdriver-找不到元素,c#,selenium,selenium-webdriver,webdriver,C#,Selenium,Selenium Webdriver,Webdriver,在C#中使用selenium,我试图打开浏览器,导航到Google并找到文本搜索字段 我尝试下面的方法 IWebDriver driver = new InternetExplorerDriver(@"C:\"); driver.Navigate().GoToUrl("www.google.com"); driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(5)); IWebElement password = dri
IWebDriver driver = new InternetExplorerDriver(@"C:\");
driver.Navigate().GoToUrl("www.google.com");
driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(5));
IWebElement password = driver.FindElement(By.Id("gbqfq"));
但是得到以下错误-
找不到id==gbqfq的元素。您可以尝试使用旋转等待
int timeout =0;
while (driver.FindElements(By.id("gbqfq")).Count == 0 && timeout <500){
Thread.sleep(1);
timeout++;
}
IWebElement password = driver.FindElement(By.Id("gbqfq"));
int timeout=0;
while(driver.findelelements(By.id(“gbqfq”)).Count==0&&timeout这看起来像是一个已经应答的副本
我可以向您展示我所做的工作,这对我来说似乎很有效:
public static IWebElement WaitForElementToAppear(IWebDriver driver, int waitTime, By waitingElement)
{
IWebElement wait = new WebDriverWait(driver, TimeSpan.FromSeconds(waitTime)).Until(ExpectedConditions.ElementExists(waitingElement));
return wait;
}
这需要等待一段时间,直到找到或没有找到元素。我遇到了很多问题,动态页面没有立即加载我需要的元素,Web驱动程序试图以比页面加载速度更快的速度找到元素,这是我的解决方案。希望它能有所帮助!您使用的是什么版本的Internet Exploreru使用?Selenium Web Driver对IE 11的支持存在一些已知问题。此外,我真诚的建议是使用除Google以外的任何其他网页。不幸的是,大多数人选择Google作为Selenium工作的“启动应用程序”,但它是迄今为止,你会遇到的最复杂的网站之一(即标记是地狱,并且被大量最小化)-在使用谷歌网站时,你会遇到其他人不会遇到的问题。省去你的麻烦吧!你可能已经检查过了——但该ID不是动态生成的,对吧?如果是这样,那么该ID将不是找到元素的可靠方法……可能的重复只是对We的重新实现bDriverWait
。此外,计数
应替换为任何
。