【发布时间】:2015-02-17 17:15:01
【问题描述】:
我正在使用 selenium 2.44 和 firefox 34.0,测试是在一个显示不一致行为的网站上进行的:某些页面加载导致 socket.timeout 错误(firefox 加载图标一直在旋转)。 在此错误之后,对驱动程序对象的任何调用都会导致 httplib.CannotSendRequest 因此我无法从错误中恢复并继续测试流程。
据此: httplib CannotSendRequest error in WSGI
驱动程序对象可能正在等待加载过程完成并且不允许访问该对象。
问题是如何从这个错误中恢复?
理想的解决方案是关闭出现问题的窗口并通过加载下一页继续测试。问题是我不能使用 driver.close() 因为描述的驱动程序对象是不可访问的。 driver.current_url 也无法访问,因此我无法找到当前的驱动程序测试位置。我正在考虑的最后一招是在每次加载之前存储所有窗口句柄的最后一个 URL,并在发生异常时重新创建驱动程序并加载所有窗口(在该窗口之后出现错误)。
这当然是一个次优的解决方案,但它是不可避免的吗?
【问题讨论】:
-
你解决了吗?这似乎是我面临的一个错误,我迷路了。
-
@MichaelJones 请参阅stackoverflow.com/help/no-one-answers,了解如何获得对问题的更多关注。顺便说一句:即使您不是原作者,也可以使用附加信息编辑问题。