質問編集履歴
5
新たに試したことを追加、疑問点の検討
    
        title	
    CHANGED
    
    | 
         
            File without changes
         
     | 
    
        body	
    CHANGED
    
    | 
         @@ -96,8 +96,17 @@ 
     | 
|
| 
       96 
96 
     | 
    
         | 
| 
       97 
97 
     | 
    
         
             
            
         
     | 
| 
       98 
98 
     | 
    
         
             
            ### 疑問点
         
     | 
| 
       99 
     | 
    
         
            -
            value of nullということはなにかかが認識されてはいないとは思うんですが、よくわかりません。
         
     | 
| 
      
 99 
     | 
    
         
            +
            ~~value of nullということはなにかかが認識されてはいないとは思うんですが、よくわかりません。
         
     | 
| 
       100 
100 
     | 
    
         
             
            また、手法を変えて、valueでの変更ではなく、option[hoge].selected ="true";での記述も試みましたが結果としてはやはりnull扱いとなりました。
         
     | 
| 
       101 
     | 
    
         
            -
            追記:value of null ということは、seemoreの参照を見つけていないということなのか?
         
     | 
| 
      
 101 
     | 
    
         
            +
            追記:value of null ということは、seemoreの参照を見つけていないということなのか?~~
         
     | 
| 
      
 102 
     | 
    
         
            +
             
     | 
| 
       102 
     | 
    
         
            -
            また、様々サイトを見たのですが、shadowroot下でのselectタグの扱いに関するものがどうもうまく出てこないので、そもそもこれであっているのかもよくわからない状況です。
         
     | 
| 
      
 103 
     | 
    
         
            +
            ~~また、様々サイトを見たのですが、shadowroot下でのselectタグの扱いに関するものがどうもうまく出てこないので、そもそもこれであっているのかもよくわからない状況です。~~
         
     | 
| 
      
 104 
     | 
    
         
            +
             
     | 
| 
      
 105 
     | 
    
         
            +
            ### 追記 試したこと
         
     | 
| 
      
 106 
     | 
    
         
            +
            別の適当なサイトにてshadowDOM下以外でのselect要素の取得を試しに行ってみたところ同じく下記エラーが発生しました。
         
     | 
| 
      
 107 
     | 
    
         
            +
            
         
     | 
| 
      
 108 
     | 
    
         
            +
            つまり、shadow-root下の条件ではなく、select要素の取得方法が間違っている可能性が高いようです。
         
     | 
| 
      
 109 
     | 
    
         
            +
            [過去の投稿](https://teratail.com/questions/332395)からshadowDOM下の要素の取得と実行に関しては、selenium上ではjavascriptの実行(ExecuteScript hoge )でないと成立しないようなので、
         
     | 
| 
      
 110 
     | 
    
         
            +
            私の必要な情報は**seleniumでのselect要素の取得とjavascriptの実行だということだと考えられます。**
         
     | 
| 
      
 111 
     | 
    
         
            +
            **
         
     | 
| 
       103 
112 
     | 
    
         
             
            ご教授のほどよろしくお願いします。
         
     | 
4
疑問点の追加、検討
    
        title	
    CHANGED
    
    | 
         
            File without changes
         
     | 
    
        body	
    CHANGED
    
    | 
         @@ -98,5 +98,6 @@ 
     | 
|
| 
       98 
98 
     | 
    
         
             
            ### 疑問点
         
     | 
| 
       99 
99 
     | 
    
         
             
            value of nullということはなにかかが認識されてはいないとは思うんですが、よくわかりません。
         
     | 
| 
       100 
100 
     | 
    
         
             
            また、手法を変えて、valueでの変更ではなく、option[hoge].selected ="true";での記述も試みましたが結果としてはやはりnull扱いとなりました。
         
     | 
| 
      
 101 
     | 
    
         
            +
            追記:value of null ということは、seemoreの参照を見つけていないということなのか?
         
     | 
| 
       101 
102 
     | 
    
         
             
            また、様々サイトを見たのですが、shadowroot下でのselectタグの扱いに関するものがどうもうまく出てこないので、そもそもこれであっているのかもよくわからない状況です。
         
     | 
| 
       102 
103 
     | 
    
         
             
            ご教授のほどよろしくお願いします。
         
     | 
3
試したことの追記、tagへのjavascriptの追記
    
        title	
    CHANGED
    
    | 
         
            File without changes
         
     | 
    
        body	
    CHANGED
    
    | 
         @@ -18,7 +18,7 @@ 
     | 
|
| 
       18 
18 
     | 
    
         
             
            ### 試したこと
         
     | 
| 
       19 
19 
     | 
    
         
             
            2・5に関してはshadow-root下のselectタグを選択する方法として下記の通りchromeの印刷プレビューのソースのselectタグ部分をJspathで抜き出し、**value**を入れてやるという方法をとってみたのですが下記のエラーが起きております。
         
     | 
| 
       20 
20 
     | 
    
         
             
            また、5.倍率変更に関しては、倍率ボタンを押せないために、~~その後の数値を入れるところまでできていません。~~
         
     | 
| 
       21 
     | 
    
         
            -
            (追記:send key で倍率ボタンをクリックした扱い(カスタム状態にする)にして倍率を変更する事はできました。また、選択すべきJsPathが違っていたので修正します。)
         
     | 
| 
      
 21 
     | 
    
         
            +
            (追記:実験的に力技でsend key で倍率ボタンをクリックした扱い(カスタム状態にする)にして倍率を変更する事はできました。この力技を使わない事が最終目標になります。また、選択すべきJsPathが違っていたので修正します。)
         
     | 
| 
       22 
22 
     | 
    
         
             
            
         
     | 
| 
       23 
23 
     | 
    
         
             
            ```VBA
         
     | 
| 
       24 
24 
     | 
    
         
             
            Sub chrome印刷()
         
     | 
| 
         @@ -97,5 +97,6 @@ 
     | 
|
| 
       97 
97 
     | 
    
         
             
            
         
     | 
| 
       98 
98 
     | 
    
         
             
            ### 疑問点
         
     | 
| 
       99 
99 
     | 
    
         
             
            value of nullということはなにかかが認識されてはいないとは思うんですが、よくわかりません。
         
     | 
| 
      
 100 
     | 
    
         
            +
            また、手法を変えて、valueでの変更ではなく、option[hoge].selected ="true";での記述も試みましたが結果としてはやはりnull扱いとなりました。
         
     | 
| 
       100 
101 
     | 
    
         
             
            また、様々サイトを見たのですが、shadowroot下でのselectタグの扱いに関するものがどうもうまく出てこないので、そもそもこれであっているのかもよくわからない状況です。
         
     | 
| 
       101 
102 
     | 
    
         
             
            ご教授のほどよろしくお願いします。
         
     | 
2
未解決の一部のみ解決したので追記いたしました。
    
        title	
    CHANGED
    
    | 
         
            File without changes
         
     | 
    
        body	
    CHANGED
    
    | 
         @@ -10,14 +10,15 @@ 
     | 
|
| 
       10 
10 
     | 
    
         
             
            0. 送信先ドロップダウンリスト(画像参照)から、「もっと見る」を選択
         
     | 
| 
       11 
11 
     | 
    
         
             
            0. 送信先選択画面からDocuWorks Printerを選択する。**__(解決済み)__**
         
     | 
| 
       12 
12 
     | 
    
         
             
            0. 詳細設定画面を開く**__(解決済み)__**
         
     | 
| 
       13 
     | 
    
         
            -
            0. 最後に印刷倍率を調整
         
     | 
| 
      
 13 
     | 
    
         
            +
            0. 最後に印刷倍率を調整**__(一部解決済み)__**
         
     | 
| 
       14 
14 
     | 
    
         
             
            0. 印刷ボタンを押す。**__(解決済み)__**
         
     | 
| 
       15 
15 
     | 
    
         
             
            までを行いたいと考えています。
         
     | 
| 
       16 
16 
     | 
    
         
             
            
         
     | 
| 
       17 
17 
     | 
    
         
             
            
         
     | 
| 
       18 
18 
     | 
    
         
             
            ### 試したこと
         
     | 
| 
       19 
19 
     | 
    
         
             
            2・5に関してはshadow-root下のselectタグを選択する方法として下記の通りchromeの印刷プレビューのソースのselectタグ部分をJspathで抜き出し、**value**を入れてやるという方法をとってみたのですが下記のエラーが起きております。
         
     | 
| 
       20 
     | 
    
         
            -
            また、5.倍率変更に関しては、倍率ボタンを押せないために、その後の数値を入れるところまでできていません。
         
     | 
| 
      
 20 
     | 
    
         
            +
            また、5.倍率変更に関しては、倍率ボタンを押せないために、~~その後の数値を入れるところまでできていません。~~
         
     | 
| 
      
 21 
     | 
    
         
            +
            (追記:send key で倍率ボタンをクリックした扱い(カスタム状態にする)にして倍率を変更する事はできました。また、選択すべきJsPathが違っていたので修正します。)
         
     | 
| 
       21 
22 
     | 
    
         
             
            
         
     | 
| 
       22 
23 
     | 
    
         
             
            ```VBA
         
     | 
| 
       23 
24 
     | 
    
         
             
            Sub chrome印刷()
         
     | 
| 
         @@ -42,9 +43,9 @@ 
     | 
|
| 
       42 
43 
     | 
    
         
             
            Dim bai As String
         
     | 
| 
       43 
44 
     | 
    
         
             
            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"";"
         
     | 
| 
       44 
45 
     | 
    
         | 
| 
       45 
     | 
    
         
            -
            '倍率を 
     | 
| 
      
 46 
     | 
    
         
            +
            '倍率を90に変更
         
     | 
| 
       46 
47 
     | 
    
         
             
            Dim par As String
         
     | 
| 
       47 
     | 
    
         
            -
            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(""# 
     | 
| 
      
 48 
     | 
    
         
            +
            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"";"
         
     | 
| 
       48 
49 
     | 
    
         | 
| 
       49 
50 
     | 
    
         
             
            '印刷
         
     | 
| 
       50 
51 
     | 
    
         
             
            Dim s_print As String
         
     | 
1
内容が前に下書きしていたものになっていたので修正いたしました。
    
        title	
    CHANGED
    
    | 
         
            File without changes
         
     | 
    
        body	
    CHANGED
    
    | 
         @@ -7,41 +7,94 @@ 
     | 
|
| 
       7 
7 
     | 
    
         
             
            seleniumを利用して、自社のサイトの画面をdocuwarksで抜き出したい。
         
     | 
| 
       8 
8 
     | 
    
         
             
            chromeにて、
         
     | 
| 
       9 
9 
     | 
    
         
             
            0. 印刷プレビュー画面の呼び出し**__(解決済み)__**
         
     | 
| 
       10 
     | 
    
         
            -
            0. 送信先ドロップダウンリスト(画像参照)から、もっと見るを選択
         
     | 
| 
      
 10 
     | 
    
         
            +
            0. 送信先ドロップダウンリスト(画像参照)から、「もっと見る」を選択
         
     | 
| 
       11 
     | 
    
         
            -
            0. 送信先選択画面からDocuWorks Printerを選択する。
         
     | 
| 
      
 11 
     | 
    
         
            +
            0. 送信先選択画面からDocuWorks Printerを選択する。**__(解決済み)__**
         
     | 
| 
      
 12 
     | 
    
         
            +
            0. 詳細設定画面を開く**__(解決済み)__**
         
     | 
| 
      
 13 
     | 
    
         
            +
            0. 最後に印刷倍率を調整
         
     | 
| 
       12 
     | 
    
         
            -
            0.  
     | 
| 
      
 14 
     | 
    
         
            +
            0. 印刷ボタンを押す。**__(解決済み)__**
         
     | 
| 
       13 
     | 
    
         
            -
             
     | 
| 
      
 15 
     | 
    
         
            +
            までを行いたいと考えています。
         
     | 
| 
       14 
16 
     | 
    
         
             
            
         
     | 
| 
       15 
17 
     | 
    
         
             
            
         
     | 
| 
       16 
18 
     | 
    
         
             
            ### 試したこと
         
     | 
| 
       17 
     | 
    
         
            -
            2・ 
     | 
| 
      
 19 
     | 
    
         
            +
            2・5に関してはshadow-root下のselectタグを選択する方法として下記の通りchromeの印刷プレビューのソースのselectタグ部分をJspathで抜き出し、**value**を入れてやるという方法をとってみたのですが下記のエラーが起きております。
         
     | 
| 
      
 20 
     | 
    
         
            +
            また、5.倍率変更に関しては、倍率ボタンを押せないために、その後の数値を入れるところまでできていません。
         
     | 
| 
       18 
21 
     | 
    
         
             
            
         
     | 
| 
       19 
22 
     | 
    
         
             
            ```VBA
         
     | 
| 
      
 23 
     | 
    
         
            +
            Sub chrome印刷()
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
            Dim driver As New Selenium.WebDriver
         
     | 
| 
      
 26 
     | 
    
         
            +
            Dim skey As New Selenium.Keys
         
     | 
| 
      
 27 
     | 
    
         
            +
            Dim Shadowprint As String
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
            'もっと見る呼び出し
         
     | 
| 
       20 
30 
     | 
    
         
             
            Dim seemore As String
         
     | 
| 
       21 
31 
     | 
    
         
             
            seemore = "document.querySelector(""body > print-preview-app"").shadowRoot.querySelector(""#sidebar"").shadowRoot.querySelector(""#destinationSettings"").shadowRoot.querySelector(""#destinationSelect"").shadowRoot.querySelector(""print-preview-settings-section:nth-child(10) > div > select"").value =""seeMore"";"
         
     | 
| 
       22 
32 
     | 
    
         | 
| 
      
 33 
     | 
    
         
            +
            'DocuWorksドライバ選択
         
     | 
| 
      
 34 
     | 
    
         
            +
            Dim docu As String
         
     | 
| 
      
 35 
     | 
    
         
            +
            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();"
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
            '詳細設定展開
         
     | 
| 
      
 38 
     | 
    
         
            +
            Dim shousai As String
         
     | 
| 
      
 39 
     | 
    
         
            +
            shousai = "document.querySelector(""body > print-preview-app"").shadowRoot.querySelector(""#sidebar"").shadowRoot.querySelector(""#container > print-preview-more-settings"").shadowRoot.querySelector (""div"").click();"
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
            '倍率ボタンをカスタムに変更
         
     | 
| 
      
 42 
     | 
    
         
            +
            Dim bai As String
         
     | 
| 
      
 43 
     | 
    
         
            +
            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"";"
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
      
 45 
     | 
    
         
            +
            '倍率を97に変更
         
     | 
| 
      
 46 
     | 
    
         
            +
            Dim par As String
         
     | 
| 
      
 47 
     | 
    
         
            +
            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"";"
         
     | 
| 
      
 48 
     | 
    
         
            +
             
     | 
| 
      
 49 
     | 
    
         
            +
            '印刷
         
     | 
| 
      
 50 
     | 
    
         
            +
            Dim s_print As String
         
     | 
| 
      
 51 
     | 
    
         
            +
            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();"
         
     | 
| 
      
 52 
     | 
    
         
            +
             
     | 
| 
      
 53 
     | 
    
         
            +
            '--------------------------------------------------------------------------------------------------------------------------------------
         
     | 
| 
       23 
54 
     | 
    
         
             
            driver.Start "chrome"
         
     | 
| 
       24 
55 
     | 
    
         
             
            driver.Get "https://www.google.com/"
         
     | 
| 
       25 
56 
     | 
    
         | 
| 
      
 57 
     | 
    
         
            +
                      '印刷画面呼び出し
         
     | 
| 
       26 
     | 
    
         
            -
            driver.ExecuteScript "setTimeout(function(){window.print();}, 0);"
         
     | 
| 
      
 58 
     | 
    
         
            +
                      driver.ExecuteScript "setTimeout(function(){window.print();}, 0);"
         
     | 
| 
      
 59 
     | 
    
         
            +
                     
         
     | 
| 
      
 60 
     | 
    
         
            +
                      'VBAの場合十分な時間待たないと失敗する。
         
     | 
| 
      
 61 
     | 
    
         
            +
                      driver.Wait (3000)
         
     | 
| 
      
 62 
     | 
    
         
            +
                      driver.SwitchToNextWindow
         
     | 
| 
      
 63 
     | 
    
         
            +
                      
         
     | 
| 
      
 64 
     | 
    
         
            +
                      '送信先選択でもっと見るを選択
         
     | 
| 
      
 65 
     | 
    
         
            +
                      driver.ExecuteScript seemore
         
     | 
| 
      
 66 
     | 
    
         
            +
                      
         
     | 
| 
      
 67 
     | 
    
         
            +
                      
         
     | 
| 
      
 68 
     | 
    
         
            +
                      driver.Wait (3000)
         
     | 
| 
      
 69 
     | 
    
         
            +
                      
         
     | 
| 
      
 70 
     | 
    
         
            +
                      '印刷ドライバ選択
         
     | 
| 
      
 71 
     | 
    
         
            +
                      driver.ExecuteScript docu
         
     | 
| 
      
 72 
     | 
    
         
            +
                      
         
     | 
| 
      
 73 
     | 
    
         
            +
                      '倍率変更のために詳細設定をクリックし開く
         
     | 
| 
      
 74 
     | 
    
         
            +
                      driver.ExecuteScript shousai
         
     | 
| 
      
 75 
     | 
    
         
            +
                      
         
     | 
| 
      
 76 
     | 
    
         
            +
                      '倍率をカスタムに変更
         
     | 
| 
      
 77 
     | 
    
         
            +
                      driver.ExecuteScript bai
         
     | 
| 
      
 78 
     | 
    
         
            +
                      
         
     | 
| 
      
 79 
     | 
    
         
            +
                      '倍率を入力
         
     | 
| 
      
 80 
     | 
    
         
            +
                      driver.ExecuteScript par
         
     | 
| 
      
 81 
     | 
    
         
            +
                      driver.Wait (3000)
         
     | 
| 
      
 82 
     | 
    
         
            +
                      '印刷ボタンを押す
         
     | 
| 
      
 83 
     | 
    
         
            +
                      driver.ExecuteScript s_print
         
     | 
| 
      
 84 
     | 
    
         
            +
                     
         
     | 
| 
      
 85 
     | 
    
         
            +
                      'VBAの場合Closeで勝手に閉じるので十分な時間WAIT。
         
     | 
| 
      
 86 
     | 
    
         
            +
                      driver.Wait (20000)
         
     | 
| 
       27 
87 
     | 
    
         | 
| 
       28 
     | 
    
         
            -
             driver.Wait (3000)
         
     | 
| 
       29 
     | 
    
         
            -
             driver.SwitchToNextWindow
         
     | 
| 
       30 
     | 
    
         
            -
             driver.ExecuteScript seemore
         
     | 
| 
       31 
88 
     | 
    
         | 
| 
      
 89 
     | 
    
         
            +
             
     | 
| 
      
 90 
     | 
    
         
            +
             
     | 
| 
       32 
     | 
    
         
            -
             
     | 
| 
      
 91 
     | 
    
         
            +
            End Sub
         
     | 
| 
      
 92 
     | 
    
         
            +
             
     | 
| 
       33 
93 
     | 
    
         
             
            ```
         
     | 
| 
       34 
94 
     | 
    
         
             
            ### 発生している問題・エラーメッセージ
         
     | 
| 
       35 
95 
     | 
    
         | 
| 
       36 
96 
     | 
    
         
             
            
         
     | 
| 
       37 
     | 
    
         
            -
            ### 
     | 
| 
      
 97 
     | 
    
         
            +
            ### 疑問点
         
     | 
| 
       38 
     | 
    
         
            -
             
     | 
| 
       39 
     | 
    
         
            -
            ```ここに言語名を入力
         
     | 
| 
       40 
     | 
    
         
            -
            ソースコード
         
     | 
| 
       41 
     | 
    
         
            -
            ```
         
     | 
| 
       42 
     | 
    
         
            -
             
     | 
| 
       43 
     | 
    
         
            -
             
     | 
| 
       44 
     | 
    
         
            -
             
     | 
| 
       45 
     | 
    
         
            -
             
     | 
| 
      
 98 
     | 
    
         
            +
            value of nullということはなにかかが認識されてはいないとは思うんですが、よくわかりません。
         
     | 
| 
       46 
     | 
    
         
            -
             
     | 
| 
      
 99 
     | 
    
         
            +
            また、様々サイトを見たのですが、shadowroot下でのselectタグの扱いに関するものがどうもうまく出てこないので、そもそもこれであっているのかもよくわからない状況です。
         
     | 
| 
       47 
     | 
    
         
            -
             
     | 
| 
      
 100 
     | 
    
         
            +
            ご教授のほどよろしくお願いします。
         
     |