Selenium从firefox中挂起.(?)

本文关键字:挂起 firefox Selenium | 更新日期: 2023-09-27 17:50:32

我有这个问题与硒3.40和3.39(我不知道什么关于以前的版本)。

在selenium运行(和执行)一段时间后,我的测试卡住了,并在"查找元素"上失败,并抛出以下异常:

OpenQA.Selenium。WebDriverException:对远程的HTTP请求WebDriver服务器的URLhttp://localhost:7055/hub/session/44f53200-6259-4f38-8738-b4beda40429f/elements60秒后超时。--> 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和问题仍然存在。

Selenium从firefox中挂起.(?)

我找到了:我设置

WebDriver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(60));

在我代码中的某个地方,这会导致每次元素查找都要等待60秒才能出现元素。

根据您的确认,我可以说您遇到这个问题是因为您的WebDriver对象是static。您可以一个接一个地运行测试,但是一旦尝试一次运行多个测试,JVM就会认为您的不同测试具有相同的WebDriver对象!有趣,嗯. .

找到一种方法从你的对象中删除static修饰符,这很可能需要你改变整个结构,而它解决你的问题。

源:

一个有经验的Selenium用户,在尝试运行多个测试之前遇到过这个问题,并收到相同的行为,并按照上面的步骤修复它。