teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

追記

2019/01/09 03:11

投稿

navca
navca

スコア44

title CHANGED
File without changes
body CHANGED
@@ -32,4 +32,13 @@
32
32
  ↓実行中
33
33
  ![イメージ説明](1f4ea56aa3e56d31e7bea8c4dca64b16.png)
34
34
  ↓実行後(バックグラウンドに2つgeckodriverが残っています。これを手動で削除するとタブのクルクルがなくなり値が返ってきます。)
35
- ![イメージ説明](1c45a43090da55435d10d7434a402dec.png)
35
+ ![イメージ説明](1c45a43090da55435d10d7434a402dec.png)
36
+
37
+ ----------------------------------------------------
38
+ 以下追記
39
+ コマンドプロンプトから直接入力した結果
40
+ taskkill /im geckodriver.exe /f
41
+ エラー: プロセス "geckodriver.exe" が見つかりませんでした。
42
+
43
+ ↓その時のタスクマネージャー
44
+ ![イメージ説明](2846fe34d69b8c08bd2cf1a86c8bcc8c.png)

1

追記

2019/01/09 03:11

投稿

navca
navca

スコア44

title CHANGED
@@ -1,1 +1,1 @@
1
- python selenium quitしてもプロセスが残る
1
+ windows firefox プロセスが残る python selenium
body CHANGED
@@ -3,8 +3,10 @@
3
3
  windows10
4
4
  apache(xammp)
5
5
  FireFox webdriver
6
+ 要約: pythonでwindowsのコマンドを実行する```subprocess.Popen('taskkill /im geckodriver.exe /f', shell=True)```を書いてもプロセスがkillできない。タスクマネージャーから手動で削除できる。Edgeで実行すると取得できます。
6
7
 
7
- seleniumでプロセスが残ってしまうという問題をしらべてみるとたくさん出てきますが、driver.quitすれば良いくらいしか書いておらず、実際そうやっても残ってしまうため、subprocessでコマンドを実行してプロセスをkillしています。しかしそれでもバックグラウンドプロセスが残ってしまい、Firefoxやクロームで実行するとタブのくるくるがずっと回りっぱなしでdoneが返ってきません(なぜかEdgeで実行すると取得できます)。プロセスツリーをkillするはずの```taskkill /im geckodriver.exe```をしてもプロセスが残るのはなぜでしょうか?また、そもそもquitすればプロセスをkillできるはずですが、quitしてもprocessが残ってしまうのはなぜでしょうか?
8
+
9
+ seleniumでプロセスが残ってしまうという問題をしらべてみるとたくさん出てきますが、driver.quitすれば良いくらいしか書いておらず、実際そうやっても残ってしまうため、subprocessでコマンドを実行してプロセスをkillしています。しかしそれでもバックグラウンドプロセスが残ってしまい、Firefoxやクロームで実行するとタブのくるくるがずっと回りっぱなしでdoneが返ってきません(なぜかEdgeで実行すると取得できます)。プロセスツリーをkillするはずの```taskkill /im geckodriver.exe /f```をしてもプロセスが残るのはなぜでしょうか?また、そもそもquitすればプロセスをkillできるはずですが、quitしてもprocessが残ってしまうのはなぜでしょうか?
8
10
  ```python3
9
11
  async def create_driver(url, loop=None):
10
12
  options = Options()
@@ -22,12 +24,12 @@
22
24
  for i in done:
23
25
  i.result().quit()
24
26
 
25
- subprocess.Popen('taskkill /im geckodriver.exe', shell=True)
27
+ subprocess.Popen('taskkill /im geckodriver.exe /f', shell=True)
26
28
  ```
27
29
 
28
30
  ↓実行前(Firefoxで実行しました。GUIで起動中のFirefoxのプロセスしかありません。)
29
31
  ![イメージ説明](ffa502f6c259aa6c72a5640993f446da.png)
30
32
  ↓実行中
31
33
  ![イメージ説明](1f4ea56aa3e56d31e7bea8c4dca64b16.png)
32
- ↓実行後(バックグラウンドに2つgeckodriverが残っています。これをkillするとタブのクルクルがなくなり値が返ってきます。)
34
+ ↓実行後(バックグラウンドに2つgeckodriverが残っています。これを手動で削除するとタブのクルクルがなくなり値が返ってきます。)
33
35
  ![イメージ説明](1c45a43090da55435d10d7434a402dec.png)