Python Selenium WebDriver 在 Windows XP 大批量运行时导致“严重错误”
我们在一组测试站上运行了一些Python测试脚本。这些测试脚本需要和测试站上的硬件设备进行交互,所以我们每个测试站一次只能运行一个测试脚本(我们无法虚拟化所有东西)。我们开发了一个工具,可以把测试分配给不同的测试站,并报告测试结果——这样我们就可以把成千上万的测试排队,让它们在晚上或者任何时间段内运行。
不过,有时候我们发现测试站会从集群中掉线。当我远程登录这些测试站时,屏幕是黑的,然后它们会重启,重启后再登录时,我会收到一个提示,告诉我Windows XP出现了“严重错误”。事件日志中记录了这个错误,显示类别: (102)
和事件ID: 1003
。
之前我们发现,这个问题是因为创建了数百个临时的Firefox用户配置文件造成的——我们的测试使用selenium webdriver来自动化与网站的交互,每次启动一个新的浏览器时,都会创建一个临时的Firefox配置文件。我们在每个测试之间增加了一步清理,清空这些临时的Firefox配置文件,但我们仍然发现有时候测试站会掉线,而且总是伴随着这个严重错误和事件日志中的记录。
我想找到这个问题的根本原因,但我不知道该怎么做。我尝试搜索如何读取事件日志条目的信息,但没有找到任何有用的内容。我愿意接受任何建议,来帮助我调试这个问题。
1 个回答
我之前在使用Firefox时也遇到过类似的问题。偶尔我们能抓到电脑出问题的时刻,发现其实是浏览器会话没有正常关闭,最后导致了蓝屏死机。显然,这个问题可能是webdriver、Firefox或者我们当时用的XP系统中的一个bug。我们解决这个问题的方法是,在每次测试之间强制结束所有的Firefox进程。这个方法对我们有效。而且因为你没有并行运行测试,这个方法对你也应该有效。我说的“强制结束”就是像用斧头砍一样,Windows系统中相当于 killall -9 firefox
的命令。因为这些会话都没有反应。
至于问题的根本原因是什么?这个问题并不是出现在特定版本的Firefox上。但我们从来没有真正搞清楚它的原因。调试这个问题非常困难,因为在短时间的测试中无法重现这个问题,而一旦出现问题,电脑就会直接崩溃。