VBAでブラウザを操作するのに、IEからSeleniumBasic+Chromeへ移行してしばらく経ちます。不便に感じていたのがテキストボックスへの文字列の入力です。
IEならValueプロパティに値を設定すればよかったですが、 SeleniumBasicではなぜかそれができません。ネットで調べるとクリップボードに値を設定して、テキストボックス上でCtrl+vをSendKeysで実行するのが定番のようでした。なので今まではこうしていました。
1回入力するくらいなら問題ありませんが、数十回数百回とループさせる場合は実行速度が遅く感じます。また実行中にうっかり他のアプリケーションでコピーしてしまうと、当然それがペーストされてしまいます。
解決しようとさらに調べていたところ、 ExecuteScriptというメソッドがあることに気づきました。JavaScriptの文字列を実行できるようで、これならValueに値を設定できることがわかりました。
上の(中略)以下は1行で済みました。
とりあえずこれで解決です。
IEならValueプロパティに値を設定すればよかったですが、 SeleniumBasicではなぜかそれができません。ネットで調べるとクリップボードに値を設定して、テキストボックス上でCtrl+vをSendKeysで実行するのが定番のようでした。なので今まではこうしていました。
1回入力するくらいなら問題ありませんが、数十回数百回とループさせる場合は実行速度が遅く感じます。また実行中にうっかり他のアプリケーションでコピーしてしまうと、当然それがペーストされてしまいます。
解決しようとさらに調べていたところ、 ExecuteScriptというメソッドがあることに気づきました。JavaScriptの文字列を実行できるようで、これならValueに値を設定できることがわかりました。
上の(中略)以下は1行で済みました。
とりあえずこれで解決です。
2 件のコメント:
なんか上手くいって助かりましたw
お役に立ってよかったです!
コメントを投稿