IWebDriver driver = new RemoteWebDriver(uri, dc);
driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(60);
** Search google and end up at a Google Search Results page
List<IWebElement> elements = new List<IWebElement>();
elements.AddRange(driver.FindElements(By.XPath("//*[@id=\"vn1s0p1c0\"]")));当我运行它时,如果页面上存在XPath,它就能工作,但是如果页面上不存在这个Xpath,它将等待,然后在60秒超时。我认为,如果找不到元素,FindElements的行为就是返回一个空列表。不知道我做错了什么。
发布于 2017-11-19 01:35:02
问题是指定60秒时间等待搜索该元素。如果删除设置等待时间的第二行代码,则如果驱动程序页中不存在该元素,则该代码将返回空的IWebElement列表。否则,指定60秒搜索该元素将在60秒后抛出Timeout exception。
以下代码将跳过超时问题:
IWebDriver driver = new RemoteWebDriver(uri, dc);
** Search google and end up at a Google Search Results page
List<IWebElement> elements = new List<IWebElement>();
elements.AddRange(driver.FindElements(By.XPath("//*[@id=\"vn1s0p1c0\"]")));https://stackoverflow.com/questions/47372728
复制相似问题