【问题标题】:Way to close chromedriver, only when browser is closed by user [duplicate]关闭chromedriver的方法,仅当用户关闭浏览器时[重复]
【发布时间】:2020-11-23 02:38:37
【问题描述】:

我编写了一个代码,通过在 python 中传递凭据并使用 selenium Web 驱动程序来自动化登录过程。那么,一旦登录完成,那么用户将需要执行一些任务,然后他将是关闭浏览器的人,在手动关闭浏览器时,是否也可以结束 chromedriver 进程?

【问题讨论】:

  • 嗨,相关的线程不是我要找的。恰恰相反。在关联中,问题是让浏览器打开并关闭驱动程序,但我不想这样做。我只想在浏览器关闭时关闭驱动程序。我不知道如何重新打开我的问题。我不确定我要问的是相关线程的副本。两者的目的不同。

标签: selenium selenium-webdriver browser selenium-chromedriver


【解决方案1】:

我认为手动关闭浏览器不是一个好主意。当你这样做时,你会得到一个异常,可能是消息 "timed out connected to Chrome..." 什么的,因为 seleniumdriver 实例仍在运行但 chrome 已经消失了。
我强烈建议将此步骤替换为driver.quit

但是

如果你真的想手动关闭浏览器,也许你可以尝试杀死chromedriver进程
在 Windows 上的 Java 演示,如下所示:

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

【讨论】:

  • 您好,谢谢您的回复,但我想暂停脚本,然后当浏览器 chrome.exe 不存在时,我只想杀死 chromedriver 进程。这可能吗?跨度>
【解决方案2】:

你不需要手动关闭,你可以在 selenium 中使用close() 方法

driver.close(); 

Close() 方法关闭当前打开的浏览器窗口,该窗口具有 WebDriver 的焦点。所有其他浏览器窗口保持打开状态,并且 webdriver 的实例也保持打开和可用状态。 Quit() 关闭所有浏览器窗口,并进一步处理 WebDriver 实例。

【讨论】:

  • 我明白,但问题是我正在尝试自动化应用程序的登录过程,我想暂停脚本,直到它检测到没有 chrome.exe,然后运行它并关闭司机。我已经尝试关闭并退出,但是它在完成应该做的事情后关闭浏览器然后关闭浏览器但是在这里我需要浏览器以便在登录完成后完成任务等。我可以在这个中使用线程设想?并等待 Chrome.exe 事件关闭,然后运行将关闭驱动程序的其余脚本?
  • 我曾经使用过autoit,其中有一个类似的函数叫winwaitclose,但是,使用autoit进行chrome自动化还需要chromedriver,与python和selenium设置相比,它相当慢。
猜你喜欢
  • 2018-11-26
  • 1970-01-01
  • 1970-01-01
  • 2021-07-23
  • 1970-01-01
  • 2014-04-15
  • 2019-04-28
  • 2015-04-27
相关资源
最近更新 更多