ほっとひといき給湯室

ほっとひといき給湯室の掲示板です。お気軽にどうぞ!
  • 掲示板への投稿には会員登録(無料)が必要です。会員登録がまだの方はこちら
  • 掲示板ご利用上のお願い」に反するご記入はご遠慮ください。
  • Q&A掲示板の使い方はこちらをご覧ください
トピックに返信
質問

 
VBAでWebブラウザ制御
投稿日時: 21/10/18 07:51:52
投稿者: kumatti
投稿者のウェブサイトに移動

https://qiita.com/uezo/items/66e20b064ffd5f239b9a
共著だが『Excel VBAでIEを思いのままに操作できるプログラミング術』の作者さんのQiita。
既に更新がなくなってるSeleniumBasic一択のVBA界隈に光を当てた、と言うのか、
「Seleniumを使わずにWebDriverと直接やり取りすればいいじゃない」的な感じである。
質問にもレスポンスを返してくれる手厚さは技術者の鑑か。
 
https://www.codeproject.com/Tips/5307593/Automate-Chrome-Edge-using-VBA
Seleniumをヘッドレスモードで使わなければ、コンソール画面が出るが、そこに
>DevTools
何たらの文字が浮かび上がってると思う。言わずと知れたWebブラウザの開発者ツールの事である。
WebDriverもすっ飛ばして、これを直接扱う、ぶっ飛んだCode Projecのページ。
ただ、環境による差異が大きく、自分はまともに動かせてない。
 
こちらでもお馴染みのMicrosoft MVP(何部門かは失念)のきぬあさ氏のブログでも紹介されています。
https://www.ka-net.org/blog/?p=14131
時折、興味を惹かれるネタを披瀝してくれるので、とても嬉しい。

回答
投稿日時: 21/10/21 22:12:34
投稿者: simple

貴重な情報ありがとうごさいます。
 
最初のサイト記事は小生も知っておりました。
この記事を拝見することで、WebDriverの機能概要の一端を知ることができたような気がしました。
 
ただ個人的な印象では、SeleniumBasicというルールのほうが枯れているし、
必要な情報も多くコードは書きやすい印象です。
ただ、SeleniumBasicは更新が途絶えたままなので、いつまで持つのかという不安はありそうですが、
現時点の機能以上のものを望まなければ使用可能なようにも思っています。動作しなくなると困りますが。
 
いずれにしてもIEの保守に制約が発生することが明確になっているので、
今後なんらかの対応を検討しておく必要があるようで、
この間の事情は、きぬあささんの記事群も別途あるようです。参考になります。
 
二つ目の話は知りませんでした。
時間を見つけて拝見しようと思います。
 
ありがとうございます。

投稿日時: 21/10/27 08:10:17
投稿者: kumatti
投稿者のウェブサイトに移動

simpleさん、コメント有難うございます。スパム投稿も配慮を頂いたとしたら、そちらも有難うございます。
 
二つ目のコードは、外部からアタッチ(プロセス間通信によるパイプ処理)できるように
それ用の引数を付加して起動させたEdgeに対するコードなので、複数のEdgeが起動済みだと動かないのですが、
画面上に現れてないのに「なぜか、動かない...?」と暫く思っておりました。
別件でスタートアップになぜか(非表示で起動する)Edgeがセットされており、これが原因でした。
リンク先の方でも「タイムアウトがどうの」とあり、この状況は一般的なものと思われます。
CreateProcessA APIを非公開機能を使って起動してるのに、レジストリから読み込まずにEdge本体のパスをハードコートしてるのが、
懸念される所ですが、(エスケープ処理が面倒なものの)JavaScript構文はIEでの記述を想起させ、懐かしさに浸りました。
msedgedriver.exeもWebDriver.dllも要らない気楽さは何気にいいものです。
 
リンク先でも触れられてないので、これは環境によるのでしょうけど、他言語で書いた(C++/CLIでしか確認してない)Seleniumで起動済みのEdgeは別にカウントされるらしく、
複数起動ができない弊害というのか、それが軽減され、使い勝手がそれ程、損なわれないのもいいです。
(本当はVB6があればそちらで.exeで動かしたい所)

トピックに返信