tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルブラウザのリロード
記事No12082
投稿日: 2022/12/31(Sat) 13:54
投稿者あかり
はじめまして、こんにちは。
VB.netで起動させたフォームとは別のブラウザ(例えばChromeやedge)に対してリロードさせることは可能でしょうか?
メモ帳への入力はできました。
よろしくお願いします。

[ツリー表示へ]
タイトルRe: ブラウザのリロード
記事No12083
投稿日: 2022/12/31(Sat) 16:42
投稿者魔界の仮面弁士
> VB.netで起動させたフォームとは別のブラウザ(例えばChromeやedge)に対してリロードさせることは可能でしょうか?

Edge でも Chrome でも WebDriver の Refresh メソッドでリロードできるかと思います。

制御については、VB 側からブラウザーを起動した方が手っ取り早いですが、
ブラウザー側を起動した後で VB アプリを後から起動したい場合は、
ブラウザーの起動オプションに --remote-debugging-port=ポート番号 を明示しておきましょう。

[ツリー表示へ]
タイトルRe^2: ブラウザのリロード
記事No12084
投稿日: 2022/12/31(Sat) 17:10
投稿者あかり
>魔界の仮面弁士さん
早速のご返信ありがとうございます。
やはりWebDriverの使用が楽なのでしょうか。
sendMessageでF5キーやCtrl+Rを押すのを試していましたが、うまく動作しなくて悩んでました。
メモ帳では動作したのですが…

[ツリー表示へ]
タイトルRe^3: ブラウザのリロード
記事No12085
投稿日: 2023/01/01(Sun) 10:04
投稿者あかり
sendMessageではなく、postMessageでした

[ツリー表示へ]
タイトルRe^3: ブラウザのリロード
記事No12086
投稿日: 2023/01/01(Sun) 11:04
投稿者魔界の仮面弁士
> やはりWebDriverの使用が楽なのでしょうか。
逆にお聞きしますが、「やはり」という表現を使いつつも
WebDriver が選択肢から外れている理由は何でしょうか?

別案を提示することはできますが、提案内容が理由なく却下され続けてしまうと
会話になりませんので、理由があるのなら明確にして欲しいところです。

とりあえず WebDriver 以外の方法ということで、UIAutomation 経由で
リロードするサンプルを作ってみました。IE, Edge, Chrome, Firefox 対応で、
Windows 10 および Windows 11 で検証しています。(Win11 + IE11 という変則環境でも確認済み)
https://gist.github.com/Benshi/514f1873f1c61280b25f1fe85d935dfc

検証は VB2022 で行っていますが、コード中に「null 条件演算子」や「文字列補間」を
使っているので、VB2015 以降でないとコンパイルできないと思います。

> sendMessageで
キー送出なら PostMessage という気もしますが、先頭小文字の sendMessage と書かれているので、
Win32 の SendMessage ですらなく、ブラウザー拡張の runtime.sendMessage API のことでしょうか。
(Win32 API は大文字小文字を区別します)
https://developer.mozilla.org/ja/docs/Mozilla/Add-ons/WebExtensions/API/runtime/sendMessage

> sendMessageではなく、postMessageでした
HTMLDom に、先頭小文字の window.postMessage API があったりします。
https://developer.mozilla.org/ja/docs/Web/API/Window/postMessage


> F5キーやCtrl+Rを押すのを試していましたが、
キーボード エミュレーションといえば、 SendInput API が思い浮かびます。
http://www.hanatyan.sakura.ne.jp/vb2005/vb2013keyboard03.htm

[ツリー表示へ]
タイトルRe^4: ブラウザのリロード
記事No12087
投稿日: 2023/01/03(Tue) 18:47
投稿者あかり
> 逆にお聞きしますが、「やはり」という表現を使いつつも
> WebDriver が選択肢から外れている理由は何でしょうか?

最近Webを検索するとSeleniumの話題が多かったので、そちらが主流なのかと思いました。
久しぶりにVBをさわるのと、ブラウザのバージョンが変わると動かなくなるといった環境依存の話もありましたので、なるべくメンテが少ない方がいいと思い、除外しています。

> とりあえず WebDriver 以外の方法ということで、UIAutomation 経由で
> リロードするサンプルを作ってみました。IE, Edge, Chrome, Firefox 対応で、

お忙しいところありがとうございます。
試してみます。

> Win32 の SendMessage ですらなく、ブラウザー拡張の runtime.sendMessage API のことでしょうか。

いえ、ごく一般的なSendMessageです。
特に深い意図はございません。
他の言語もやってたりするので、書き方が混ざってしまったと思います。
失礼しました。

[ツリー表示へ]
タイトルRe^4: ブラウザのリロード
記事No12088
投稿日: 2023/01/03(Tue) 19:14
投稿者あかり
UIテスト用の機能を使用して実現したということですね。
ありがとうございました。

[ツリー表示へ]
タイトルRe: ブラウザのリロード
記事No12089
投稿日: 2023/01/11(Wed) 21:01
投稿者MineSinna
分かったありがとう

[ツリー表示へ]
タイトルRe^2: ブラウザのリロード
記事No12090
投稿日: 2023/01/21(Sat) 00:23
投稿者MineSinna
興味深い情報 hhttps://www.google.com/

[ツリー表示へ]