org.openqa.selenium.os.UnixProcess$SeleniumWatchDog destroyHarderINFO: Command failed to close cleanly. Destroying forcefully (v2)
后来一个高手(估计是维护者)如是说:
that's an INFO logging line, not a warning. It's just saying that the process took too long to finish naturally and so is now being killed with the equivalent of "kill -9"。
这是啥意思?经过我仔细审核自己的代码,我发现,问题处在了QUIT这个方法上。可是,当我对单独测试的时候,结果这个问题又不见了。
因此,可以肯定。chrome.quit();实际上去试图关闭所有的windows,虽然我只用了一个window,但是我之前访问了太多的网页,而没有进行quit和重启我的chrome.这让我的chrome中残留了太多的东西需要clean and close. 在最大允许的时间范围内,quit无法结束chrome,所以只能kill.
出现这个提示后,程序卡住了,不再继续执行。
我不得不说,这是因为SW还不完善。但是,就目前看,多线程调用SW中关闭浏览器的最佳方式是使用close,这样就不会出现上述问题。
我还发现,chrome的方法中没有返回值为boolean的方法(除了equals之外),这一点很不利,因为我需要对chrome进行关闭,开启,切换等。如果不能准别把握chrome的状态,就可能出现很多异常陷阱。比如我想关闭,但是,如果这个chrome根本没开着,就会出现异常。所以,如果能增加一个chrome.isOpen方法,或者chrome.getState方法,就很好了。
联系客服