2016-06-13 15 views
0

selenium.Inを使用してダウンロードファイルを確認するためのテストケースがいくつかありますが、ブラウザのポップアップが自動的に処理され、ダウンロードしてください。SeleniumでJavaスクリプト関数を呼び出すと、Web要素からファイルURLを取得できます

ハンドルダウンロードポップアップ自動的にChromeで

ChromeOptions options = new ChromeOptions(); 
Map<String, Object> prefs = new HashMap<String, Object>(); 
prefs.put("profile.default_content_settings.popups", 0); 
prefs.put("download.default_directory","/downloadpath/"); 
options.setExperimentalOption("prefs", prefs); 
capabilities.setCapability(ChromeOptions.CAPABILITY, options); 

これが原因コードスニペット上のいくつかの制限に私の地元のmachine.butで正常に動作はいけないセレンでの作業は、ソリューションは、私は、ブラウザのクッキーの状態を模倣grid.AsファイルURLを取得し、プログラムでこのファイルをローカルの場所に書き込んでください。exampleですが、このアプローチではいくつか問題があります。ダウンロードファイルのURLを特定するには、href属性を含むWeb要素が必要です。mycaseでは、ボタンクリック時にjavaスクリプト関数を呼び出してファイルURLを生成します。

HTMLコードスニペット

<input type="button" onclick="javascript:downloadFile()" value="Download">.//does not contains href 

JSコードスニペット

<SCRIPT language="javascript"> 
    function downloadFile() { 
     var fileType = document.form.fileType.options[document.form.fileType.selectedIndex].value; 
      var boType = "TransportManifest" 
      if(fileType == null || fileType == "") { 
       window.alert('Please select a file type'); 
      } else { 
       var format = fileType.substring(0, fileType.indexOf("~~")); 
       var link = "/local/dynamic1234." + format + "?key="+154220756+"&producer=ExportMediaProducer"; // i need to access this generated URL 
       link = link + "&fileType=" + fileType + "&type=" + boType; 
       document.location=link;      
       } 
       } 
     </SCRIPT> 

私は、プログラムが任意のブラウザリスナーをfile.IsをダウンロードするファイルのURLを取得する方法を教えてくださいボタンをクリックしてファイルのURLを取得するトリガーですか?

答えて

1

要素をクリックすると、hrefで新しいフレームを作成すると思われます。クリック後に要素を調べる必要があります。

ダウンロードが役に立たなかった場合は

関連する問題