うまくいけば、これはあまり痛くないでしょう...
私は webbrowser コントロールから web サイトにアクセスしようとしていますが、次の問題がある 2 つの方法を試しました (実際には、さまざまな結果をグーグルで検索した結果よりも多くの方法があります)。
URL = "http://username:password@thewebsite.com"
WebBrowser1.Navigate(URL)
1: この方法では、ウィンドウ セキュリティ ポップアップが表示され、会社のプロキシにログインするように求められます。これは、Web サイトのユーザー名/パスワードを使用していて、URL ナビゲーションがそれをプロキシに入力しようとしているためだと思いますか?
これを実行してプロキシビットを自動化/回避しようとすると:
Dim Headers As String = "Proxy-Authorization: Basic " & Convert.ToBase64String(System.Text.ASCIIEncoding.ASCII.GetBytes("USERNAME:PASSWORD"))
WebBrowser1.Navigate(URL, "", Encoding.Unicode.GetBytes(String.Empty), Headers)
にもかかわらず、プロキシ ログイン ボックスがポップアップするため、まだ失敗します。
2: URL を編集せずに直接 Web サイトにアクセスした場合:
URL = "http://thewebsite.com"
WebBrowser1.Navigate(URL)
次に、プロキシ メッセージをまったく表示せずに Web サイトに移動します (すばらしい!) が、Web サイトは入力する必要があるログイン ボックスをポップアップ表示します。悲しいことに、これは (自動化するために) 要素 ID を取得できません。これは、Web ブラウザー コントロールの外側に表示される Windows フォームであるためです。
私が次に何を試すべきかについて誰かアイデアがありますか? 方法 2 からログイン フォームを取得して、それ自体に入力するか、少なくともそのページのソースを表示させる方法はありますか? 正しく入力されるまで、クリックして離すことはできません。
両方のログインフォームを処理するものを機能させることができないようです。それはどちらか一方です。(どちらのフォームも Windows 標準のログイン プロンプトのように見えますが、Web ページには組み込まれていません)。ありがとう