質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.86%

  • Java

    12477questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • selenium

    396questions

    Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

  • VBScript

    202questions

    VBScript(Visual Basic Scripting Edition)はMicrosftが開発したスクリプト言語であり、Visual Basicのサブセットです。

  • WSH

    28questions

    WSH(Windows Script Host)とは、Windows上でテキストファイルに記述したJavaScriptやVBScriptなどのスクリプトを実行するホスト環境のことです。COMを通じたレジストリ操作やWMIへのアクセスが可能で、複雑な処理も行うことができます。

java.awt.Robotクラスを用いずIE11からseleniumでファイルをダウンロードしたい。

受付中

回答 0

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 60

reraNine

score 0

 前提・実現したいこと

javaとseleniumを用いて
特定サイト(IE限定)にアクセスし、
ファイルをダウンロードする処理を
java.awt.Robotクラスを用いず実装したい。
(正確にはPCロック等のアクティブ状態に関わらずダウンロードしたい)

よろしくお願い致します。

 発生している問題・エラーメッセージ

IEのダウンロードは通知バーが発生する為、java.awt.Robotを用いて実装しました。
しかし、Robotクラスは、アクティブウィンドウにキーを送信する方式ですので
例)
├エクスプローラやeclipse等別のプログラムを起動していた
└PCをロックしていた
上記のタイミングの際に、Robotクラスを用いてキーを送信すると
IE上でボタンを押せていない為、ファイルダウンロードが上手くいきません。
サーバー上で定期実行したい為、現状のプログラムでは実装不可能です。

 考察

1.アクティブ状態に関わらずにダウンロードする機能をjavaで実装する。
2.IEダウンロード時の通知バー発生を表示させなくする。

上記2種のどちらかが実装できればと思うのですが。。

【追記】
編集・追記依頼より、
vbs, wshを利用すれば。。との情報を提供いただきました。ありがとうございます。
タグにVBScript WSHを追加させていただきました。

構想としては、
1.java selenium------------------------------------------------

File df = new File("ダウンロード先ファイルディレクトリ");
//ボタンの要素を発見し、押下。ダウンロードを実行する。
WebElement element;
element = driver.findElement(By.XX("ボタンの要素"));
element.sendKeys(Keys.chord(Keys.ENTER));
//5秒単位でダウンロードファイルの確認をする。200秒程度を上限で
//ファイルを発見次第繰り返し処理を終了する。
for (int i = 0; i < 40; i++) {
    Thread.sleep(5000);
    if (df.exists()) {
    break;
    } else {
        /**
        * ★ここでvbs, wshを
        * ディレクトリ指定で起動する...?
        **/
    }
}

2.vbs wsh ------------------------------------------------------

//記載方が違うと思いますがご容赦下さい。
★IEの通知バーを検出する。
if(見つからなかった) {
  //java側でループ出来るので、処理終了しても良し。
 //...本当は何度も起動するケースを想定し、こちらで判定すべき?
else Then //見つかった
  ファイルのダウンロードボタンを押下する。
 //ファイル自体の容量により時間がバラバラだと思うので、
  //待ち時間制御を実装できれば..
  //1.出来る場合
 while(「ダウンロードが完了しました」の通知バーを検出する) {
     if(見つかった) {
    vbs wsh側の処理を終了する。
     }
  }
  //2.出来ない場合
 //返却値 true等1等返し、java側で受け取り、
 //vbs起動判定条件を追加する
  // return true;
]

上記の★に該当する
呼び出し方及び、IE通知バー取得に関する記載が実装できればと思います。
申し訳ないのですが、vbs wshの知識が皆無である為、
見当違いな事を構想しているのかもしれません。

このurlが参考になる等の情報がございましたら、ご教授の程
よろしくお願い致します。

 参考資料

IEダウンロードの際、参考にさせていただいた記事
http://rabitarochan.hatenablog.com/entry/2017/11/30/130604

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正の依頼

  • asahina1979

    2018/05/29 18:50

    つ vbs

    キャンセル

  • asahina1979

    2018/05/29 18:51

    つ wsh

    キャンセル

  • reraNine

    2018/05/30 09:42

    情報提供ありがとうございます。上記に関する知識0ですので、、調べます。進展がありましたら追記させていただきます。

    キャンセル

まだ回答がついていません

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.86%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • Java

    12477questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • selenium

    396questions

    Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

  • VBScript

    202questions

    VBScript(Visual Basic Scripting Edition)はMicrosftが開発したスクリプト言語であり、Visual Basicのサブセットです。

  • WSH

    28questions

    WSH(Windows Script Host)とは、Windows上でテキストファイルに記述したJavaScriptやVBScriptなどのスクリプトを実行するホスト環境のことです。COMを通じたレジストリ操作やWMIへのアクセスが可能で、複雑な処理も行うことができます。