質問編集履歴

5

新たに試したことを追加、疑問点の検討

2021/08/06 07:33

投稿

tetrisuehara
tetrisuehara

スコア20

test CHANGED
File without changes
test CHANGED
@@ -194,12 +194,30 @@
194
194
 
195
195
  ### 疑問点
196
196
 
197
- value of nullということはなにかかが認識されてはいないとは思うんですが、よくわかりません。
197
+ ~~value of nullということはなにかかが認識されてはいないとは思うんですが、よくわかりません。
198
198
 
199
199
  また、手法を変えて、valueでの変更ではなく、option[hoge].selected ="true";での記述も試みましたが結果としてはやはりnull扱いとなりました。
200
200
 
201
- 追記:value of null ということは、seemoreの参照を見つけていないということなのか?
201
+ 追記:value of null ということは、seemoreの参照を見つけていないということなのか?~~
202
-
202
+
203
+
204
+
203
- また、様々サイトを見たのですが、shadowroot下でのselectタグの扱いに関するものがどうもうまく出てこないので、そもそもこれであっているのかもよくわからない状況です。
205
+ ~~また、様々サイトを見たのですが、shadowroot下でのselectタグの扱いに関するものがどうもうまく出てこないので、そもそもこれであっているのかもよくわからない状況です。~~
206
+
207
+
208
+
209
+ ### 追記 試したこと
210
+
211
+ 別の適当なサイトにてshadowDOM下以外でのselect要素の取得を試しに行ってみたところ同じく下記エラーが発生しました。
212
+
213
+ ![イメージ説明](3892d065a042c0b782d928ab7653b9a3.png)
214
+
215
+ つまり、shadow-root下の条件ではなく、select要素の取得方法が間違っている可能性が高いようです。
216
+
217
+ [過去の投稿](https://teratail.com/questions/332395)からshadowDOM下の要素の取得と実行に関しては、selenium上ではjavascriptの実行(ExecuteScript hoge )でないと成立しないようなので、
218
+
219
+ 私の必要な情報は**seleniumでのselect要素の取得とjavascriptの実行だということだと考えられます。**
220
+
221
+ **
204
222
 
205
223
  ご教授のほどよろしくお願いします。

4

疑問点の追加、検討

2021/08/06 07:33

投稿

tetrisuehara
tetrisuehara

スコア20

test CHANGED
File without changes
test CHANGED
@@ -198,6 +198,8 @@
198
198
 
199
199
  また、手法を変えて、valueでの変更ではなく、option[hoge].selected ="true";での記述も試みましたが結果としてはやはりnull扱いとなりました。
200
200
 
201
+ 追記:value of null ということは、seemoreの参照を見つけていないということなのか?
202
+
201
203
  また、様々サイトを見たのですが、shadowroot下でのselectタグの扱いに関するものがどうもうまく出てこないので、そもそもこれであっているのかもよくわからない状況です。
202
204
 
203
205
  ご教授のほどよろしくお願いします。

3

試したことの追記、tagへのjavascriptの追記

2021/08/05 02:51

投稿

tetrisuehara
tetrisuehara

スコア20

test CHANGED
File without changes
test CHANGED
@@ -38,7 +38,7 @@
38
38
 
39
39
  また、5.倍率変更に関しては、倍率ボタンを押せないために、~~その後の数値を入れるところまでできていません。~~
40
40
 
41
- (追記:send key で倍率ボタンをクリックした扱い(カスタム状態にする)にして倍率を変更する事はできました。また、選択すべきJsPathが違っていたので修正します。)
41
+ (追記:実験的に力技でsend key で倍率ボタンをクリックした扱い(カスタム状態にする)にして倍率を変更する事はできました。この力技を使わない事が最終目標になりす。また、選択すべきJsPathが違っていたので修正します。)
42
42
 
43
43
  ![chrome印刷プレビューソース](975c3d4f76c11f0a20c1a616744995a7.png)
44
44
 
@@ -196,6 +196,8 @@
196
196
 
197
197
  value of nullということはなにかかが認識されてはいないとは思うんですが、よくわかりません。
198
198
 
199
+ また、手法を変えて、valueでの変更ではなく、option[hoge].selected ="true";での記述も試みましたが結果としてはやはりnull扱いとなりました。
200
+
199
201
  また、様々サイトを見たのですが、shadowroot下でのselectタグの扱いに関するものがどうもうまく出てこないので、そもそもこれであっているのかもよくわからない状況です。
200
202
 
201
203
  ご教授のほどよろしくお願いします。

2

未解決の一部のみ解決したので追記いたしました。

2021/08/04 05:35

投稿

tetrisuehara
tetrisuehara

スコア20

test CHANGED
File without changes
test CHANGED
@@ -22,7 +22,7 @@
22
22
 
23
23
  0. 詳細設定画面を開く**__(解決済み)__**
24
24
 
25
- 0. 最後に印刷倍率を調整
25
+ 0. 最後に印刷倍率を調整**__(一部解決済み)__**
26
26
 
27
27
  0. 印刷ボタンを押す。**__(解決済み)__**
28
28
 
@@ -36,7 +36,9 @@
36
36
 
37
37
  2・5に関してはshadow-root下のselectタグを選択する方法として下記の通りchromeの印刷プレビューのソースのselectタグ部分をJspathで抜き出し、**value**を入れてやるという方法をとってみたのですが下記のエラーが起きております。
38
38
 
39
- また、5.倍率変更に関しては、倍率ボタンを押せないために、その後の数値を入れるところまでできていません。
39
+ また、5.倍率変更に関しては、倍率ボタンを押せないために、~~その後の数値を入れるところまでできていません。~~
40
+
41
+ (追記:send key で倍率ボタンをクリックした扱い(カスタム状態にする)にして倍率を変更する事はできました。また、選択すべきJsPathが違っていたので修正します。)
40
42
 
41
43
  ![chrome印刷プレビューソース](975c3d4f76c11f0a20c1a616744995a7.png)
42
44
 
@@ -86,11 +88,11 @@
86
88
 
87
89
 
88
90
 
89
- '倍率を97に変更
91
+ '倍率を90に変更
90
92
 
91
93
  Dim par As String
92
94
 
93
- par = "document.querySelector(""body > print-preview-app"").shadowRoot.querySelector(""#sidebar"").shadowRoot.querySelector(""#moreSettings > print-preview-scaling-settings"").shadowRoot.querySelector(""iron-collapse > print-preview-number-settings-section"").shadowRoot.querySelector(""#userValue"").shadowRoot.querySelector(""#row-container"")document.querySelector(""body > print-preview-app"").shadowRoot.querySelector(""#sidebar"").shadowRoot.querySelector(""#moreSettings > print-preview-scaling-settings"").shadowRoot.querySelector(""iron-collapse > print-preview-number-settings-section"").shadowRoot.querySelector(""#userValue"").shadowRoot.querySelector(""#row-container"").value =""97"";"
95
+ par = "document.querySelector(""body > print-preview-app"").shadowRoot.querySelector(""#sidebar"").shadowRoot.querySelector(""#moreSettings > print-preview-scaling-settings"").shadowRoot.querySelector(""iron-collapse > print-preview-number-settings-section"").shadowRoot.querySelector(""#userValue"").shadowRoot.querySelector(""#input"").value =""90"";"
94
96
 
95
97
 
96
98
 

1

内容が前に下書きしていたものになっていたので修正いたしました。

2021/08/04 01:38

投稿

tetrisuehara
tetrisuehara

スコア20

test CHANGED
File without changes
test CHANGED
@@ -16,13 +16,17 @@
16
16
 
17
17
  0. 印刷プレビュー画面の呼び出し**__(解決済み)__**
18
18
 
19
- 0. 送信先ドロップダウンリスト(画像参照)から、もっと見るを選択
19
+ 0. 送信先ドロップダウンリスト(画像参照)から、もっと見るを選択
20
20
 
21
- 0. 送信先選択画面からDocuWorks Printerを選択する。
21
+ 0. 送信先選択画面からDocuWorks Printerを選択する。**__(解決済み)__**
22
22
 
23
- 0. 最後に印刷倍率調整して印刷ボタンを押すまでを行いたいと思っております。
23
+ 0. 詳細設定画面開く**__(解決済み)__**
24
24
 
25
+ 0. 最後に印刷倍率を調整
25
26
 
27
+ 0. 印刷ボタンを押す。**__(解決済み)__**
28
+
29
+ までを行いたいと考えています。
26
30
 
27
31
  ![印刷プレヴュー](5a4aa0b8eb7fe676d8247e8c4f977aec.png)
28
32
 
@@ -30,11 +34,27 @@
30
34
 
31
35
  ### 試したこと
32
36
 
33
- 2・4に関してはshadow-root下のselectタグを選択する方法下記の通りchromeの印刷プレビューのソースのselectタグ部分をJspathで抜き出し、**value**を入れてやるという方法をとってみたのですが
37
+ 2・5に関してはshadow-root下のselectタグを選択する方法として下記の通りchromeの印刷プレビューのソースのselectタグ部分をJspathで抜き出し、**value**を入れてやるという方法をとってみたのですが下記のエラーが起きております。
38
+
39
+ また、5.倍率変更に関しては、倍率ボタンを押せないために、その後の数値を入れるところまでできていません。
34
40
 
35
41
  ![chrome印刷プレビューソース](975c3d4f76c11f0a20c1a616744995a7.png)
36
42
 
37
43
  ```VBA
44
+
45
+ Sub chrome印刷()
46
+
47
+
48
+
49
+ Dim driver As New Selenium.WebDriver
50
+
51
+ Dim skey As New Selenium.Keys
52
+
53
+ Dim Shadowprint As String
54
+
55
+
56
+
57
+ 'もっと見る呼び出し
38
58
 
39
59
  Dim seemore As String
40
60
 
@@ -42,25 +62,125 @@
42
62
 
43
63
 
44
64
 
65
+ 'DocuWorksドライバ選択
66
+
67
+ Dim docu As String
68
+
69
+ docu = "document.querySelector(""body > print-preview-app"").shadowRoot.querySelector(""#sidebar"").shadowRoot.querySelector(""#destinationSettings"").shadowRoot.querySelector(""print-preview-destination-dialog"").shadowRoot.querySelector(""#printList"").shadowRoot.querySelector(""#destination_9 > print-preview-destination-list-item"").click();"
70
+
71
+
72
+
73
+ '詳細設定展開
74
+
75
+ Dim shousai As String
76
+
77
+ shousai = "document.querySelector(""body > print-preview-app"").shadowRoot.querySelector(""#sidebar"").shadowRoot.querySelector(""#container > print-preview-more-settings"").shadowRoot.querySelector (""div"").click();"
78
+
79
+
80
+
81
+ '倍率ボタンをカスタムに変更
82
+
83
+ Dim bai As String
84
+
85
+ bai = "document.querySelector(""body > print-preview-app"").shadowRoot.querySelector(""#sidebar"").shadowRoot.querySelector(""#moreSettings > print-preview-scaling-settings"").shadowRoot.querySelector(""print-preview-settings-section > div > select"").Value = ""3"";"
86
+
87
+
88
+
89
+ '倍率を97に変更
90
+
91
+ Dim par As String
92
+
93
+ par = "document.querySelector(""body > print-preview-app"").shadowRoot.querySelector(""#sidebar"").shadowRoot.querySelector(""#moreSettings > print-preview-scaling-settings"").shadowRoot.querySelector(""iron-collapse > print-preview-number-settings-section"").shadowRoot.querySelector(""#userValue"").shadowRoot.querySelector(""#row-container"")document.querySelector(""body > print-preview-app"").shadowRoot.querySelector(""#sidebar"").shadowRoot.querySelector(""#moreSettings > print-preview-scaling-settings"").shadowRoot.querySelector(""iron-collapse > print-preview-number-settings-section"").shadowRoot.querySelector(""#userValue"").shadowRoot.querySelector(""#row-container"").value =""97"";"
94
+
95
+
96
+
97
+ '印刷
98
+
99
+ Dim s_print As String
100
+
101
+ s_print = "document.querySelector(""body > print-preview-app"").shadowRoot.querySelector(""#sidebar"").shadowRoot.querySelector(""print-preview-button-strip"").shadowRoot.querySelector(""div > cr-button.action-button"").click();"
102
+
103
+
104
+
105
+ '--------------------------------------------------------------------------------------------------------------------------------------
106
+
45
107
  driver.Start "chrome"
46
108
 
47
109
  driver.Get "https://www.google.com/"
48
110
 
49
111
 
50
112
 
113
+ '印刷画面呼び出し
114
+
51
- driver.ExecuteScript "setTimeout(function(){window.print();}, 0);"
115
+ driver.ExecuteScript "setTimeout(function(){window.print();}, 0);"
116
+
117
+
118
+
119
+ 'VBAの場合十分な時間待たないと失敗する。
120
+
121
+ driver.Wait (3000)
122
+
123
+ driver.SwitchToNextWindow
124
+
125
+
126
+
127
+ '送信先選択でもっと見るを選択
128
+
129
+ driver.ExecuteScript seemore
130
+
131
+
132
+
133
+
134
+
135
+ driver.Wait (3000)
136
+
137
+
138
+
139
+ '印刷ドライバ選択
140
+
141
+ driver.ExecuteScript docu
142
+
143
+
144
+
145
+ '倍率変更のために詳細設定をクリックし開く
146
+
147
+ driver.ExecuteScript shousai
148
+
149
+
150
+
151
+ '倍率をカスタムに変更
152
+
153
+ driver.ExecuteScript bai
154
+
155
+
156
+
157
+ '倍率を入力
158
+
159
+ driver.ExecuteScript par
160
+
161
+ driver.Wait (3000)
162
+
163
+ '印刷ボタンを押す
164
+
165
+ driver.ExecuteScript s_print
166
+
167
+
168
+
169
+ 'VBAの場合Closeで勝手に閉じるので十分な時間WAIT。
170
+
171
+ driver.Wait (20000)
52
172
 
53
173
 
54
174
 
55
- driver.Wait (3000)
56
-
57
- driver.SwitchToNextWindow
58
-
59
- driver.ExecuteScript seemore
60
175
 
61
176
 
62
177
 
178
+
179
+
180
+
63
- 以下略
181
+ End Sub
182
+
183
+
64
184
 
65
185
  ```
66
186
 
@@ -70,24 +190,10 @@
70
190
 
71
191
  ![イメージ説明](3892d065a042c0b782d928ab7653b9a3.png)
72
192
 
73
- ### 該当のソースコード
193
+ ### 疑問点
74
194
 
195
+ value of nullということはなにかかが認識されてはいないとは思うんですが、よくわかりません。
75
196
 
197
+ また、様々サイトを見たのですが、shadowroot下でのselectタグの扱いに関するものがどうもうまく出てこないので、そもそもこれであっているのかもよくわからない状況です。
76
198
 
77
- ```ここに言語名を入力
78
-
79
- ソースコード
80
-
81
- ```
82
-
83
-
84
-
85
-
86
-
87
-
88
-
89
- ### 補足情報(FW/ツールのバージョンなど)
90
-
91
-
92
-
93
- ここにり詳細な情報を記載ださい。
199
+ ご教授のほどしくお願します