从 Python 测试开始时,Selenium (RC) 挂起

软件测试 Python
2022-02-05 19:30:53

Selenium 相当新(但喜欢它)。我在 Selenium RC 上用 Python 运行一个测试。我每天运行多次,持续了大约 3 周。现在,当我尝试运行它时,它会在它应该调用 Selenium 之前执行所有命令,然后就挂起。Selenium 似乎运行良好(除了这个问题)。我应该检查什么?

提前致谢!

编辑#1

例如,我的测试开始于:

def setUp(self):  
    os.system("killall firefox")  
    self.verificationErrors = []  
    print "Starting Selenium..."  
    self.selenium = selenium("localhost", 4444, "*chrome", "http://someaddy.blah.com/")  
    self.selenium.start()  
    print "Selenium Started"</pre></code>

我得到:

firefox(2194):不允许操作
firefox(10039):不允许操作
firefox(23890):不允许操作
firefox(26220):不允许操作
firefox:没有进程被杀死
启动硒...

返回,它将无限期地挂在那里。

编辑#2

现在它达到了相同的点(“Selenium Started...”)并出现错误BadStatusLine

1个回答

firefox(2194):不允许操作

此消息表明您的脚本试图杀死另一个用户拥有的 firefox 进程,或者被 SELinux 之类的东西阻止。在再次运行测试之前尝试以管理员或 root 身份运行此命令。

我会进一步推测运行测试的用户与运行 Selenium RC 的用户不同。

修复建议;

  1. 停止尝试杀死 firefox - Selnium RC(远程控制)并不总是与您的测试在同一台机器上运行,并且在网格设置中甚至会并行运行。必须手动杀死 Firefox 意味着一个更深层次的问题。
  2. 自己杀死 firefox 进程并确保 Selenium-server 进程已重新启动以“清理”
  3. 运行测试并从 selenium 服务器本身捕获日志 - 这将表明连接正在建立,浏览器正在启动等

“BadStatusLine”是一个 Python 错误,表明在与 Web 服务器通信期间出现问题,并暗示 SeleniumServer 已进入 http 响应损坏的状态。上述步骤可能对此有所帮助。