質問編集履歴

15

追加で試したことを追記

2019/05/01 07:37

投稿

dam9806
dam9806

スコア21

test CHANGED
File without changes
test CHANGED
@@ -119,3 +119,61 @@
119
119
 
120
120
 
121
121
  以上、宜しくお願いいたします。
122
+
123
+
124
+
125
+
126
+
127
+ 5/1 追加で試したことの追記
128
+
129
+ 上記コードの「.start」の直前に、以下のパターンでコードを追加して試しました。
130
+
131
+ しかし、いずれも例外は発生しないものの、ファイルはダウンロードされませんでした。
132
+
133
+ リファレンス・ドキュメントなどに記載を見つけることができなかったので、pythonコードを参考にして適当に試したものです。
134
+
135
+
136
+
137
+ .SetPreference "page.setDownloadBehavior.behavior", "allow"
138
+
139
+ .SetPreference "browser.setDownloadBehavior.behavior", "allow"
140
+
141
+ .SetPreference "download.setDownloadBehavior.behavior", "allow"
142
+
143
+ .SetPreference "setDownloadBehavior.behavior", "allow"
144
+
145
+
146
+
147
+ .SetPreference "page.setDownloadBehavior", "{'behavior':'allow'}"
148
+
149
+ .SetPreference "browser.setDownloadBehavior", "{'behavior':'allow'}"
150
+
151
+ .SetPreference "download.setDownloadBehavior", "{'behavior':'allow'}"
152
+
153
+ .SetPreference "setDownloadBehavior", "{'behavior':'allow'}"
154
+
155
+
156
+
157
+ .SetPreference "page.set_download_behavior.behavior", "allow"
158
+
159
+ .SetPreference "browser.set_download_behavior.behavior", "allow"
160
+
161
+ .SetPreference "download.set_download_behavior.behavior", "allow"
162
+
163
+ .SetPreference "set_download_behavior.behavior", "allow"
164
+
165
+
166
+
167
+ .SetPreference "page.set_download_behavior", "{'behavior':'allow'}"
168
+
169
+ .SetPreference "browser.set_download_behavior", "{'behavior':'allow'}"
170
+
171
+ .SetPreference "download.set_download_behavior", "{'behavior':'allow'}"
172
+
173
+ .SetPreference "set_download_behavior", "{'behavior':'allow'}"
174
+
175
+
176
+
177
+ .SetPreference "downloadBehavior", "allow"
178
+
179
+ .SetPreference "download.behavior", "allow"

14

修正

2019/05/01 07:37

投稿

dam9806
dam9806

スコア21

test CHANGED
File without changes
test CHANGED
@@ -7,6 +7,18 @@
7
7
 
8
8
 
9
9
  ```ここに言語を入力
10
+
11
+ #If VBA7 Then
12
+
13
+ Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal ms As LongPtr)
14
+
15
+ #Else
16
+
17
+ Private Declare Sub Sleep Lib "kernel32" (ByVal ms As Long)
18
+
19
+ #End If
20
+
21
+
10
22
 
11
23
  Sub test()
12
24
 
@@ -40,7 +52,7 @@
40
52
 
41
53
  .FindElementByClass("listStyle04").FindElementByTag("a").Click
42
54
 
43
- Call sleep2(3)
55
+ Call Sleep(3000)
44
56
 
45
57
  End With
46
58
 
@@ -67,8 +79,6 @@
67
79
  End Sub
68
80
 
69
81
  ```
70
-
71
- ※sleep2は自作のsleep関数です。sleep2(3)で3秒停止します。検証される場合は標準のsleep関数で置き換えて下さい。
72
82
 
73
83
 
74
84
 

13

補足

2019/04/30 09:19

投稿

dam9806
dam9806

スコア21

test CHANGED
File without changes
test CHANGED
@@ -68,6 +68,8 @@
68
68
 
69
69
  ```
70
70
 
71
+ ※sleep2は自作のsleep関数です。sleep2(3)で3秒停止します。検証される場合は標準のsleep関数で置き換えて下さい。
72
+
71
73
 
72
74
 
73
75
  上記の実行によりCSVファイルがダウンロードされる想定ですが、されません。

12

追記

2019/04/30 08:56

投稿

dam9806
dam9806

スコア21

test CHANGED
File without changes
test CHANGED
@@ -100,6 +100,8 @@
100
100
 
101
101
  ヘッドレスの場合、サイトのロードに大幅に時間がかかっていることを確認済みです。
102
102
 
103
+ タイムオーバーになることすらあります。
104
+
103
105
  これについても何か対応策があれば教えて下さい。
104
106
 
105
107
 

11

質問の大幅な見直し

2019/04/30 08:30

投稿

dam9806
dam9806

スコア21

test CHANGED
File without changes
test CHANGED
@@ -6,71 +6,73 @@
6
6
 
7
7
 
8
8
 
9
+ ```ここに言語を入力
10
+
11
+ Sub test()
12
+
13
+ Dim driver As New Selenium.ChromeDriver
14
+
15
+ Dim wkObj, wkNow
16
+
17
+
18
+
19
+ On Error GoTo err
20
+
21
+ wkNow = Now
22
+
23
+ With driver
24
+
25
+ ' ヘッドレスモードの設定
26
+
27
+ .AddArgument "headless"
28
+
29
+ .AddArgument "disable-gpu"
30
+
31
+
32
+
33
+ .start
34
+
35
+ .get "https://www.japannetbank.co.jp/service/payment/web_all/csv_download.html"
36
+
37
+
38
+
9
- あるWebページ中Exportボタンをクリックすると、ファイルがダウンロードされます。
39
+ ' 「全銀形式~」をクリックすると、自動でダウンロードされ
40
+
41
+ .FindElementByClass("listStyle04").FindElementByTag("a").Click
42
+
43
+ Call sleep2(3)
44
+
45
+ End With
46
+
47
+
48
+
49
+ Set driver = Nothing
50
+
51
+ Set wkObj = Nothing
52
+
53
+ MsgBox "処理が完了しました。処理時間" & DateDiff("s", wkNow, Now) & "秒"
54
+
55
+ Exit Sub
56
+
57
+ err:
58
+
59
+ Debug.Print "err.Number=[" & err.Number & "], err.Description=[" & err.description & "], VBA.Erl=[" & VBA.Erl & "]"
60
+
61
+ Set driver = Nothing
62
+
63
+ Set wkObj = Nothing
64
+
65
+ MsgBox "エラーとなりました。処理時間" & DateDiff("s", wkNow, Now) & "秒"
66
+
67
+ End Sub
68
+
69
+ ```
10
70
 
11
71
 
12
72
 
13
- ヘッドレスモードだと、ダウンロードがりません。
73
+ 上記の実行によりCSVファイルがダウンロードされる想定です、されません。
14
74
 
15
- (ヘッドレスでない場合は、ダウンロードされることを確認済み)
16
-
17
-
18
-
19
- ヘッドレスモード設定以下のように行っています。
75
+ ヘッドレスモード設定する2行をコメント化するとダウンロードされます。
20
-
21
- ヘッドレスでない場合の確認テストでは、下2行の部分をコメント化しただけであり、他は変更していません。
22
-
23
- ```ここに言語を入力
24
-
25
- dim driver As Selenium.ChromeDriver
26
-
27
- driver.AddArgument "headless"
28
-
29
- driver.AddArgument "disable-gpu"
30
-
31
- ```
32
-
33
- ボタンクリック付近のコードは以下です。
34
-
35
- ```ここに言語を入力
36
-
37
- ' exportリンクをクリックして子画面を表示
38
-
39
- driver.FindElementById("grid-tools-finder").FindElementByClass("tool__export").FindElementByClass("trigger").Click
40
-
41
- Call sleep2(1)
42
-
43
-
44
-
45
- ' エクスポート対象は全項目を選択
46
-
47
- driver.FindElementById("allCh-radio1-label").Click
48
-
49
- Call sleep2(1)
50
-
51
-
52
-
53
- ' ダウンロード形式はCSVを選択
54
-
55
- driver.FindElementById("csv-radio1-label").Click
56
-
57
- Call sleep2(1)
58
-
59
-
60
-
61
- ' エクスポートボタンをクリック
62
-
63
- driver.FindElementById("exportSubmit").Click
64
-
65
- Call sleep2(3)
66
-
67
- ```
68
-
69
- 言い方が正しいか分かりませんが、親画面に「export」という名のリンクがあり、そこをクリックすると子画面が出現します。
70
-
71
- その子画面にて、いくつかオプションを選択したあと、エクスポートボタンをクリックします。
72
-
73
- なお、上記のsleep2は自作のsleep関数で、引数の秒数だけ待機します。
74
76
 
75
77
 
76
78
 
@@ -88,9 +90,17 @@
88
90
 
89
91
 
90
92
 
91
- 当該Webページについては有料アカウント作成してログインしない操作できめ、URL等具体的な情報UPは控えます
93
+ また、本質問とは関係いと思いますが処理時間について以下の結果となりました。
92
94
 
95
+  ヘッドレスの場合:47秒ほど
96
+
97
+  通常モードの場合:7秒ほど
98
+
99
+
100
+
93
- また、上記でも有効な回答が得られない場合当該質問文を大幅に見直し、簡単に確認できるサイトと全てスプログラムを再UPすることを検討します。
101
+ ヘッドレスの場合、サイトのドに大幅に時間がかかっていることを確認済みです。
102
+
103
+ これについても何か対応策があれば教えて下さい。
94
104
 
95
105
 
96
106
 

10

追記

2019/04/30 08:28

投稿

dam9806
dam9806

スコア21

test CHANGED
File without changes
test CHANGED
@@ -68,7 +68,7 @@
68
68
 
69
69
  言い方が正しいか分かりませんが、親画面に「export」という名のリンクがあり、そこをクリックすると子画面が出現します。
70
70
 
71
- いくつかオプションを選択したあと、エクスポートボタンをクリックします。
71
+ その子画面にて、いくつかオプションを選択したあと、エクスポートボタンをクリックします。
72
72
 
73
73
  なお、上記のsleep2は自作のsleep関数で、引数の秒数だけ待機します。
74
74
 

9

誤記修正

2019/04/30 07:03

投稿

dam9806
dam9806

スコア21

test CHANGED
File without changes
test CHANGED
@@ -60,7 +60,9 @@
60
60
 
61
61
  ' エクスポートボタンをクリック
62
62
 
63
- .FindElementById("exportSubmit").Click
63
+ driver.FindElementById("exportSubmit").Click
64
+
65
+ Call sleep2(3)
64
66
 
65
67
  ```
66
68
 

8

ボタンクリック付近の処理を追記しました

2019/04/30 07:02

投稿

dam9806
dam9806

スコア21

test CHANGED
File without changes
test CHANGED
@@ -30,13 +30,45 @@
30
30
 
31
31
  ```
32
32
 
33
- ボタンクリックのコードは以下です。
33
+ ボタンクリック付近のコードは以下です。
34
34
 
35
35
  ```ここに言語を入力
36
36
 
37
+ ' exportリンクをクリックして子画面を表示
38
+
39
+ driver.FindElementById("grid-tools-finder").FindElementByClass("tool__export").FindElementByClass("trigger").Click
40
+
41
+ Call sleep2(1)
42
+
43
+
44
+
45
+ ' エクスポート対象は全項目を選択
46
+
47
+ driver.FindElementById("allCh-radio1-label").Click
48
+
49
+ Call sleep2(1)
50
+
51
+
52
+
53
+ ' ダウンロード形式はCSVを選択
54
+
55
+ driver.FindElementById("csv-radio1-label").Click
56
+
57
+ Call sleep2(1)
58
+
59
+
60
+
61
+ ' エクスポートボタンをクリック
62
+
37
- driver.FindElementById("exportSubmit").Click
63
+ .FindElementById("exportSubmit").Click
38
64
 
39
65
  ```
66
+
67
+ 言い方が正しいか分かりませんが、親画面に「export」という名のリンクがあり、そこをクリックすると子画面が出現します。
68
+
69
+ いくつかオプションを選択したあと、エクスポートボタンをクリックします。
70
+
71
+ なお、上記のsleep2は自作のsleep関数で、引数の秒数だけ待機します。
40
72
 
41
73
 
42
74
 
@@ -56,6 +88,8 @@
56
88
 
57
89
  なお、当該Webページについては有料アカウント作成してログインしないと操作できないため、URL等具体的な情報UPは控えます。
58
90
 
91
+ また、上記でも有効な回答が得られない場合は、当該質問文を大幅に見直し、簡単に確認できるサイトと全てのソースプログラムを再UPすることを検討します。
92
+
59
93
 
60
94
 
61
95
  以上、宜しくお願いいたします。

7

説明修正

2019/04/30 07:00

投稿

dam9806
dam9806

スコア21

test CHANGED
File without changes
test CHANGED
@@ -42,9 +42,11 @@
42
42
 
43
43
  ダウンロードするためのvbaコードのヒント・参考となるサイトなど分かりましたら教えて下さい。
44
44
 
45
- ネット上にPythonサンプルコードは少ならず存在しすが、vbaについの記事は探せせんでした
45
+ 何をどう試せば良いのか、行き詰おり
46
46
 
47
47
 
48
+
49
+ なお、ネット上にPythonのサンプルコードは少なからず存在します。
48
50
 
49
51
  例えば、Pythonのサンプルコード記載記事の一つはこちら。
50
52
 

6

文章改善

2019/04/30 05:37

投稿

dam9806
dam9806

スコア21

test CHANGED
File without changes
test CHANGED
@@ -16,7 +16,9 @@
16
16
 
17
17
 
18
18
 
19
- ヘッドレスモードの設定は、以下のように行っています。(ヘッドレスでない場合のテストは、以下をコメント化しています)
19
+ ヘッドレスモードの設定は、以下のように行っています。
20
+
21
+ ヘッドレスでない場合の確認テストでは、下2行の部分をコメント化しただけであり、他は変更していません。
20
22
 
21
23
  ```ここに言語を入力
22
24
 

5

補足

2019/04/30 05:28

投稿

dam9806
dam9806

スコア21

test CHANGED
File without changes
test CHANGED
@@ -16,7 +16,7 @@
16
16
 
17
17
 
18
18
 
19
- ヘッドレスモードの設定は、以下のように行っています。
19
+ ヘッドレスモードの設定は、以下のように行っています。(ヘッドレスでない場合のテストは、以下をコメント化しています)
20
20
 
21
21
  ```ここに言語を入力
22
22
 

4

誤字の修正

2019/04/30 05:27

投稿

dam9806
dam9806

スコア21

test CHANGED
File without changes
test CHANGED
@@ -24,7 +24,7 @@
24
24
 
25
25
  driver.AddArgument "headless"
26
26
 
27
- driverK.AddArgument "disable-gpu"
27
+ driver.AddArgument "disable-gpu"
28
28
 
29
29
  ```
30
30
 

3

コードの一部を追加

2019/04/30 05:23

投稿

dam9806
dam9806

スコア21

test CHANGED
File without changes
test CHANGED
@@ -16,6 +16,28 @@
16
16
 
17
17
 
18
18
 
19
+ ヘッドレスモードの設定は、以下のように行っています。
20
+
21
+ ```ここに言語を入力
22
+
23
+ dim driver As Selenium.ChromeDriver
24
+
25
+ driver.AddArgument "headless"
26
+
27
+ driverK.AddArgument "disable-gpu"
28
+
29
+ ```
30
+
31
+ ボタンクリックのコードは以下です。
32
+
33
+ ```ここに言語を入力
34
+
35
+ driver.FindElementById("exportSubmit").Click
36
+
37
+ ```
38
+
39
+
40
+
19
41
  ダウンロードするためのvbaコードのヒント・参考となるサイトなど分かりましたら教えて下さい。
20
42
 
21
43
  ネット上にPythonのサンプルコードは少なからず存在しますが、vbaについての記事は探せませんでした。
@@ -28,7 +50,7 @@
28
50
 
29
51
 
30
52
 
31
- なお、当該Webページについてはアカウント作成してログインしないと操作できないため、URL等具体的な情報UPは控えます。
53
+ なお、当該Webページについては有料アカウント作成してログインしないと操作できないため、URL等具体的な情報UPは控えます。
32
54
 
33
55
 
34
56
 

2

ヒントでもありましたら、教えていただきたいです

2019/04/30 05:22

投稿

dam9806
dam9806

スコア21

test CHANGED
File without changes
test CHANGED
@@ -16,9 +16,9 @@
16
16
 
17
17
 
18
18
 
19
- ダウンロードするためのvbaコード教えて下さい。
19
+ ダウンロードするためのvbaコードのヒント・参考となるサイトなど分かりましたら教えて下さい。
20
20
 
21
- ネット上にPythonのサンプルコードは少なからず存在しますが、vbaは探せませんでした。
21
+ ネット上にPythonのサンプルコードは少なからず存在しますが、vbaについての記事は探せませんでした。
22
22
 
23
23
 
24
24
 
@@ -28,4 +28,8 @@
28
28
 
29
29
 
30
30
 
31
+ なお、当該Webページについてはアカウント作成してログインしないと操作できないため、URL等具体的な情報UPは控えます。
32
+
33
+
34
+
31
35
  以上、宜しくお願いいたします。

1

実行環境を追加しました。

2019/04/30 05:04

投稿

dam9806
dam9806

スコア21

test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,8 @@
1
- Excel vbaでChromeを操作しています。
1
+ Excel vbaでSeleniumを使ってChromeを操作しています。
2
+
3
+
4
+
5
+ 実行環境:win7, Excel2016
2
6
 
3
7
 
4
8