我正在努力摆脱很多Selenium的例外情况,这些例外情况已经过了很长时间(其中大部分都是假阳性)。我得到的许多例外之一是异常Selenium.SeleniumException:没有提供SessionId。之后所有测试都没有执行。
例外的细节说明如下:
SetUp方法失败。 Selenium.SeleniumException:错误: 错误:未提供sessionId。最 可能是你原来的newBrowserSession 命令失败。在 Selenium.HttpCommandProcessor.DoCommand(字符串 命令,String [] args)in C:\赫德森\工作区\硒-RC-干线双赢的无头\干线\用户\ DOTNET的\ src \核心\ HttpCommandProcessor.cs:行 98点 Selenium.HttpCommandProcessor.Stop() 在 C:\赫德森\工作区\硒-RC-干线双赢的无头\干线\用户\ DOTNET的\ src \核心\ HttpCommandProcessor.cs:行 171在Selenium.DefaultSelenium.Stop() 在 C:\赫德森\工作区\硒-RC-干线双赢的无头\干线\用户\ DOTNET的\ src \核心\ DefaultSelenium.cs:行 154点 ProductionDiagnostics.TestAttributes.TearDownUseCase() 在 C:\ BuildAgent \工作\ 11a8046c96ca46b \ ProductionDiagnostics \ NUnitTests \ TestAttributes.vb:行 121点 ProductionDiagnostics.TestAttributes.SetupUseCase() 在 C:\ BuildAgent \工作\ 11a8046c96ca46b \ ProductionDiagnostics \ NUnitTests \ TestAttributes.vb:行 99
可以帮助我继续前进的是,为什么newbrowserSession命令失败以及可能的原因是什么?
另外,我们最近将网格从1.0.7更新为1.0.8。这应该是一个麻烦吗?
答案 0 :(得分:1)
我很确定它不是硬件问题。
你没有提供任何代码等,但是从你的错误语法中的文件路径我可以看到它是执行测试的Hudson当你从Hudson开始有多个Selenium RC实例时你会遇到问题那不是线程安全的。
您需要研究使用此类:ThreadSafeSeleniumSessionStorage
<强>更新强> 看看这个: http://old.nabble.com/Problem,-Selenium-RC--sessionId--doesn't-exist--perhaps-this-session-was-already-stopped--td17633858.html
答案 1 :(得分:0)
1.0.8没有引入与1.0.7有所区别的代码。很可能你要么杀了你的会话,要么网格为你做了,因为它闲置了太久。然后,您尝试从客户端拨打电话,而无需启动新会话来处理它。