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を取得するトリガーですか?