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

回答編集履歴

4

2021/08/17 17:17

投稿

退会済みユーザー
answer CHANGED
@@ -15,7 +15,7 @@
15
15
  driver.ExecuteScript(seemore).Click
16
16
  ```
17
17
   
18
- 【注意】seemoreのスクリプト文字列を組み立てている部分は、実際の環境によって異なる場合があります。(上記をそのままコピペしてもうまく行かない場合があります)
18
+ 【注意】上記のseemoreのスクリプト文字列を組み立てている部分は、実際の環境やChromeのバージョンによって異なる場合があります。(上記をそのままコピペしてもうまく行かない場合があります)
19
19
   この部分(セレクトボックスを開いたときに現れる「もっと見る」の要素)のJSPathをクリックして取得しようとしても、
20
20
  クリック時にインスペクタが無効になってしまい、なかなか取得できないように思えますが、下記のようにすれば取得することができます。
21
21
 

3

2021/08/17 17:17

投稿

退会済みユーザー
answer CHANGED
@@ -16,7 +16,7 @@
16
16
  ```
17
17
   
18
18
  【注意】seemoreのスクリプト文字列を組み立てている部分は、実際の環境によって異なる場合があります。(上記をそのままコピペしてもうまく行かない場合があります)
19
-  この部分(セレクトボックス開いたときに現れる「もっと見る」の要素)のJSPathをChromeをクリックして取得しようとしても、
19
+  この部分(セレクトボックス開いたときに現れる「もっと見る」の要素)のJSPathをクリックして取得しようとしても、
20
20
  クリック時にインスペクタが無効になってしまい、なかなか取得できないように思えますが、下記のようにすれば取得することができます。
21
21
 
22
22
  1.VBAエディタで印刷ダイアログを開く処理(driver.SwitchToNextWindow)の後の行にブレークポイントを設定しておきます。

2

2021/08/17 17:08

投稿

退会済みユーザー
answer CHANGED
@@ -15,8 +15,8 @@
15
15
  driver.ExecuteScript(seemore).Click
16
16
  ```
17
17
   
18
- 【注意】seemoreのスクリプト文字列を組み立てている部分は、実際の環境によって異なる数字になります。
18
+ 【注意】seemoreのスクリプト文字列を組み立てている部分は、実際の環境によって異なる場合があります。(上記をそのままコピペしてもうまく行かない場合があります)
19
- この部分(セレクトボックスと開いたときに現れる「もっと見る」の要素)のJSPathをChromeをクリックして取得しようとしても、
19
+  この部分(セレクトボックスと開いたときに現れる「もっと見る」の要素)のJSPathをChromeをクリックして取得しようとしても、
20
20
  クリック時にインスペクタが無効になってしまい、なかなか取得できないように思えますが、下記のようにすれば取得することができます。
21
21
 
22
22
  1.VBAエディタで印刷ダイアログを開く処理(driver.SwitchToNextWindow)の後の行にブレークポイントを設定しておきます。
@@ -41,9 +41,9 @@
41
41
 
42
42
  ```VBA
43
43
  bai = "return document.querySelector(""body > print-preview-app"")" _
44
- & .shadowRoot.querySelector(""#sidebar"") _
44
+ & ".shadowRoot.querySelector(""#sidebar"")" _
45
- & .shadowRoot.querySelector(""#moreSettings > print-preview-scaling-settings"") _
45
+ & ".shadowRoot.querySelector(""#moreSettings > print-preview-scaling-settings"")" _
46
- & .shadowRoot.querySelector(""print-preview-settings-section > div > select > option:nth-child(4)"");"
46
+ & ".shadowRoot.querySelector(""print-preview-settings-section > div > select > option:nth-child(4)"");"
47
47
 
48
48
  driver.ExecuteScript(bai).Click
49
49
 

1

修正・追記

2021/08/17 17:07

投稿

退会済みユーザー
answer CHANGED
@@ -1,4 +1,4 @@
1
- optionの要素をreturnし、それをclickするようにしてはいかがでしょうか。
1
+ optionの要素をJS上でreturnし、それをSelenium側でClickするようにしてはいかがでしょうか。
2
2
 
3
3
 
4
4
  ```VBA
@@ -15,9 +15,9 @@
15
15
  driver.ExecuteScript(seemore).Click
16
16
  ```
17
17
   
18
- 【注意】seemoreのスクリプト文字列を組み立てている部分のうち
18
+ 【注意】seemoreのスクリプト文字列を組み立てている部分実際の環境によっては異なる数字になります。
19
- 最後 `option:nth-child(11)`の11等は実際環境には異なる数字になります。
19
+ 部分(セレクトボックスと開いたときに現れるもっと見る」の要素)のJSPathをChromeをクリックして取得しうとしも、
20
- この部分のJSPathは下記のようにして取得することができます。
20
+ クリック時にインスペクタが無効になってしまい、なかなか取得できないように思えますが、下記のようにすれば取得することができます。
21
21
 
22
22
  1.VBAエディタで印刷ダイアログを開く処理(driver.SwitchToNextWindow)の後の行にブレークポイントを設定しておきます。
23
23
 
@@ -31,4 +31,20 @@
31
31
  すると、ソースの「md-select」が選択されるはずですので、その先頭の三角矢印をクリックして展開します。(画像中黄色丸で囲んだ部分)
32
32
 
33
33
  4.セレクトボックスのoption の部分のソースが現れるので 「もっと見る」の行を右クリックしてJSPathをCopyします。(画像中、黄色の四角で囲んだ行)
34
- ![イメージ説明](9fd70cb739f3c82f7d1aba810543b964.png)
34
+ ![イメージ説明](9fd70cb739f3c82f7d1aba810543b964.png)
35
+
36
+ ---
37
+  
38
+  
39
+ 倍率「カスタム」の選択も同様にJS上でreturnさせてClickすれば出来ると思います。
40
+ (各クリックの前後で0.5~1秒ほどwaitをかけておいた方が安全かと思います)
41
+
42
+ ```VBA
43
+ bai = "return document.querySelector(""body > print-preview-app"")" _
44
+ & .shadowRoot.querySelector(""#sidebar"") _
45
+ & .shadowRoot.querySelector(""#moreSettings > print-preview-scaling-settings"") _
46
+ & .shadowRoot.querySelector(""print-preview-settings-section > div > select > option:nth-child(4)"");"
47
+
48
+ driver.ExecuteScript(bai).Click
49
+
50
+ ```