質問編集履歴
2
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -32,4 +32,13 @@
|
|
32
32
|
↓実行中
|
33
33
|

|
34
34
|
↓実行後(バックグラウンドに2つgeckodriverが残っています。これを手動で削除するとタブのクルクルがなくなり値が返ってきます。)
|
35
|
-

|
35
|
+

|
36
|
+
|
37
|
+
----------------------------------------------------
|
38
|
+
以下追記
|
39
|
+
コマンドプロンプトから直接入力した結果
|
40
|
+
taskkill /im geckodriver.exe /f
|
41
|
+
エラー: プロセス "geckodriver.exe" が見つかりませんでした。
|
42
|
+
|
43
|
+
↓その時のタスクマネージャー
|
44
|
+

|
1
追記
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
|
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
|
-
|
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
|

|
30
32
|
↓実行中
|
31
33
|

|
32
|
-
↓実行後(バックグラウンドに2つgeckodriverが残っています。これを
|
34
|
+
↓実行後(バックグラウンドに2つgeckodriverが残っています。これを手動で削除するとタブのクルクルがなくなり値が返ってきます。)
|
33
35
|

|