SeleniumBasicでダイアログ入力する際の留意点

障害はSeleniumBasicのせいではない

SeleniumBasicでスクレイピングするなか、ボタンクリックで表示されるファイル指定のダイアログでのファイル指定に大変苦労しました。

始めは、Seleniumの要素抽出が悪いのか、ダイアログの操作は無理なのかと思いましたが、なんと障害は「クリップボードの文字化け」でした。

クリップボードの文字化けとは

ボタンクリックして表示されるダイアログでファイルを指定するには、クリップボードからファイル名をペーストすることになります。

しかしこれができない。さんざん色々なものをためしましたができない。ダイアログのフォーカスの問題かとも思いましたが、どうしてもできない。
そこで途中で処理を止めてペーストすると、ペーストできるはずができない。ダイアログだと何もペーストできないが、サクラエディタでは何やら変な2文字程度の文字がペーストされる。

あまりにも謎なので、クリップボード 文字化けで検索すると・・ありました・・・

クリップボードへのコピーが文字化けする対策

なぜ文字化けするねん、という感じですが、Windows10 64bit/Excel2016で発生するようです。
実装方法はこちらから参照ください。

おわりに

ということで、さんざんな目にありましたが、クリップボードコピー後は、
Driver.Wait 2000
SendKeys "^V", True
Driver.Wait 2000
SendKey "{ENTER}", Ture
とすれば、指定のファイル名を入力できるようです。

バージョンによって文字化けとか、ほんと勘弁してほすいわ・・・

この記事が気に入ったらサポートをしてみませんか?