前提・実現したいこと
毎日行っている、ある企業サイトでのpdfファイル発行作業を自動化したいと思い、
VBAとSeleniumを利用してコードを書いております。
その作業の終盤で印刷ダイアログが表示される前に
印刷プレビューがタブ内にオーバーレイ表示される部分があり、
この画面内にある「印刷」ボタンを押したいのですが、
方法を教えて頂けないでしょうか。
発生している問題・エラーメッセージ
オーバーレイされている画面を選択するためにSwitchToFrameを利用しているのですが、
正しいフレーム名が分からず、
この方法で正しいのかも正直自信がありません。
エラーメッセージ
実行時エラー'8'
NoSuchFrameError
Frame not be found.
Identifer:fancybox*
該当のソースコード
Excel
1Dim Driver As New Selenium.WebDriver 2with Driver 3 .Start"chrome" 4 .Get"企業サイトURL" 5 6 '~印刷ファイル等を設定~ 7 8 .FindElementByCss("#start_print").Click '←ここで印刷プレビュー画面がオーバーレイされます 9 .SwitchToFrame("fancybox*") '←ここでエラーが出ます 10 .FindElementByCss("#print").Click '←このコマンドがプレビュー画面内で実行出来れば印刷ダイアログが表示されます 11end with
試したこと
ChromeのディベロッパーツールのSourcesを確認したところ、
「top」と「top/fancybox-frame数字+文字」というウィンドウマークを発見し、
以下のような名前を試してみました。
"fancybox-frame"
"fancybox-frame数字+文字"をそのまま表記
"top/fancybox-frame"
また下記の方の情報を参考にさせて頂きました。
https://qiita.com/tsuttie/items/73c134bbc7d9cff320c3
補足情報(FW/ツールのバージョンなど)
Excel VBA
Google Chrome
Seleniumbasic
エラーの一つ前のコマンドで指定する"#start_print"の
ソースは↓のように書かれてましたが、お役に立ちますでしょうか。
