33
31

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Python】Seleniumでブラウザを開いたまま処理を終了する

Last updated at Posted at 2018-11-06

1.やりたいこと

Seleniumで処理をした後に手作業でブラウザ操作をしたいと思っても、通常は処理終了時にブラウザが閉じてしまいます。
Chromeを閉じずに、処理だけ終わらせる方法を書いていきます。

2.対応方法

webdriverを立ち上げた際に、chromedriverのプロセスが立ち上がります。
このプロセスIDに終了シグナルを送れば、pythonの処理は終了したまま、chromeを開いたままにできます。
webdriverのプロセスIDはWebdriverオブジェクトから参照します。
(下記はChromedriverの場合)


from selenium import webdriver
import os
import signal

driver = webdriver.Chrome()

try:
    # ~いろいろな処理~
finally:
    os.kill(driver.service.process.pid,signal.SIGTERM)

例外発生して終了するとプロセスが残ってしまうため、finallyの中に入れて必ず終了させるようにしています。
VSCodeだとデバッグで走らせるとChromeが閉じてしまうことがありますが、コマンドラインから実行すると閉じずに残っているのがわかるかと思います。

3.備考

Chromedriverにdetachオプションを与える対応方法もありますが、コンソール画面が残ってしまったりと使い勝手があまりよくないので、なんだかんだで上記方法がよさそうでした。
参考:https://teratail.com/questions/253512

33
31
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
33
31

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?