Selenium从firefox中挂起.(?)
本文关键字:挂起 firefox Selenium | 更新日期: 2023-09-27 17:50:32
我有这个问题与硒3.40和3.39(我不知道什么关于以前的版本)。
在selenium运行(和执行)一段时间后,我的测试卡住了,并在"查找元素"上失败,并抛出以下异常:
OpenQA.Selenium。WebDriverException:对远程的HTTP请求WebDriver服务器的URL
http://localhost:7055/hub/session/44f53200-6259-4f38-8738-b4beda40429f/elements
60秒后超时。--> system.net.webeexceptionSystem.Net.HttpWebRequest.GetResponse()操作超时在OpenQA.Selenium.Remote.HttpCommandExecutor.CreateResponse (WebRequest内部异常堆栈跟踪结束——atOpenQA.Selenium.Remote.HttpCommandExecutor.CreateResponse (WebRequest请求)OpenQA.Selenium.Remote.HttpCommandExecutor.Execute(命令commandToExecute)OpenQA.Selenium.Firefox.Internal.ExtensionConnection.Execute(命令commandToExecute)OpenQA.Selenium.Remote.RemoteWebDriver.Execute(字符串driverCommandToExecute, Dictionary ' 2个参数)atOpenQA.Selenium.Remote.RemoteWebDriver。FindElements (String机制,字符串值)atOpenQA.Selenium.Remote.RemoteWebDriver.FindElementsByXPath(字符串xpath)OpenQA.Selenium.By灵活;> c_ DisplayClasse.b _d (ISearchContext上下文)在OpenQA.Selenium.By。FindElements (ISearchContext上下文)在OpenQA.Selenium.Remote.RemoteWebDriver。FindElements ()
这个问题是关于selenium运行了多长时间的问题:当单独运行测试时,它不会发生。但是,当我将一个测试作为许多测试的一部分运行时,就会发生这种情况。
在一个失败的调用之后的调用可以成功。
也发生在chrome上。我试着回去,所以硒2.34和问题仍然存在。
我找到了:我设置
WebDriver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(60));
在我代码中的某个地方,这会导致每次元素查找都要等待60秒才能出现元素。
根据您的确认,我可以说您遇到这个问题是因为您的WebDriver
对象是static
。您可以一个接一个地运行测试,但是一旦尝试一次运行多个测试,JVM就会认为您的不同测试具有相同的WebDriver
对象!有趣,嗯. .
找到一种方法从你的对象中删除static
修饰符,这很可能需要你改变整个结构,而它将解决你的问题。
一个有经验的Selenium用户,在尝试运行多个测试之前遇到过这个问题,并收到相同的行为,并按照上面的步骤修复它。