gpt4 book ai didi

java - Mozilla FireFox(无响应)-Selenium WebDriver 拒绝通过 driver.quit() 命令终止

转载 作者:行者123 更新时间:2023-12-01 22:05:59 24 4
gpt4 key购买 nike

我的程序并行启动数十个 WebDriver 实例,并在满足某些条件或我手动终止程序时杀死它们。在任何给定时间,我可能有 4 打 Activity WebDriver 实例,为了杀死不需要的实例,我调用:

driver.quit();

如果driver.quit();抛出异常,我通过Runtime.getRuntime().exec() taskkill命令通过PID杀死WebDriver .

大多数 Activity 驱动程序都被此调用破坏(当我退出程序时)。但是,通常有少数 (1-3) 个“挂起”消息 Mozilla FireFox(未响应)。他们永远不会死。

我无法确定问题的根本原因,因为我用来终止 WebDriver 的命令通常有效。我已经查看了有关类似问题的几个线程,但我觉得它们都没有解决我的问题,因为如上所述,我使用的命令通常有效 - 它只是不适用于所有实例。据我所知,任何驱动程序的操作方式都没有区别。此外,当我调用 driver.quit() 时,不会引发任何错误/异常。因此,当命令起作用和不起作用时,它看起来完全是随机的。

什么可能导致 Firefox 像这样挂起并且不响应 quit() 命令?

谢谢!

最佳答案

您的方向是正确的,但当满足某些条件时不要手动终止程序,而是使用:

driver.quit();

You can find a detailed discussion in PhantomJS web driver stays in memory

<小时/>

如果您需要强制终止 Firefox 进程,您还可以通过 getRuntime() 使用 taskkill() (windows) 命令。 exec()如下:

Runtime.getRuntime().exec("taskkill /F /IM firefox.exe /T");

You can find a detailed discussion in Selenium : How to stop geckodriver process impacting PC memory, without calling driver.quit()?

<小时/>

如果 Mozilla FireFox 挂起并显示消息 Mozilla FireFox(未响应),则实际上意味着某些内容已停止Mozilla FireFox 进程。

<小时/>

解决方案

根据文章Firefox is not responding有多种方法可以解决此问题(Windows 10),如下所示:

  • 关闭Mozilla FireFox(如果经典方式不起作用,请通过任务管理器关闭程序)
  • 重新启动您的系统。
  • 更新系统显卡驱动程序:Firefox 可能会因显卡驱动程序过时而遇到问题。您需要确保您的系统运行在最新的驱动程序更新上。
  • 禁用 Firefox 的硬件加速:硬件加速功能也与显卡有关。在某些情况下,根据某些显卡设置,当使用硬件加速时,Firefox 可能会进入死循环。因此,请关闭此功能。

关于java - Mozilla FireFox(无响应)-Selenium WebDriver 拒绝通过 driver.quit() 命令终止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58687271/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com