我对硒3.40和3.39都有这个问题(我不知道以前的版本是什么)。
经过一段时间后,硒正在运行(并且正在执行),我的测试卡住了并且失败了"找到元素"并引发以下异常:
OpenQA.Selenium.WebDriverException:对远程的HTTP请求 用于URL的WebDriver服务器
http://localhost:7055/hub/session/44f53200-6259-4f38-8738-b4beda40429f/elements
60秒后超时。 ---> System.Net.WebException:The 操作已在System.Net.HttpWebRequest.GetResponse()超时 在 OpenQA.Selenium.Remote.HttpCommandExecutor.CreateResponse(WebRequest的 请求)---内部异常堆栈跟踪结束--- at OpenQA.Selenium.Remote.HttpCommandExecutor.CreateResponse(WebRequest的 请求) OpenQA.Selenium.Remote.HttpCommandExecutor.Execute(命令 commandToExecute)at OpenQA.Selenium.Firefox.Internal.ExtensionConnection.Execute(命令 commandToExecute)at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(字符串 driverCommandToExecute,Dictionary`2参数)at OpenQA.Selenium.Remote.RemoteWebDriver.FindElements(String mechanism, 字符串值) OpenQA.Selenium.Remote.RemoteWebDriver.FindElementsByXPath(字符串 xpath)at OpenQA.Selenium.By<> C_ DisplayClasse.b _d(ISearchContext 在OpenQA.Selenium.By.FindElements(ISearchContext context)上下文 在OpenQA.Selenium.Remote.RemoteWebDriver.FindElements(By by)
这个问题是selenium运行多长时间的问题:单独运行测试时,它不会发生。但是当我作为许多测试的一部分进行测试时,它就会发生。
失败后的呼叫可以成功。
也发生了铬。 我试着回去,所以Selenium 2.34并且问题仍然存在。
答案 0 :(得分:2)
我找到了: 我设置了
WebDriver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(60));
在我的代码中的某处,这会导致每个元素查找等待60秒,以便元素出现。
答案 1 :(得分:1)
根据您的确认,我可以说您收到此问题是因为您的WebDriver
对象是static
。您可以逐个运行测试,但是一旦尝试一次运行多个,JVM会认为您的不同测试具有相同的WebDriver
对象!好笑,呵呵..
找到一种方法从您的对象中移除static
修饰符,这很可能需要您更改整个结构,将修复您的问题。
来源:
Selenium的有经验的用户在尝试运行多个测试之前遇到了这个问题,并收到了相同的行为,并按照上述步骤修复了它。