WebBrowser DocumentCompleted の問題についていくつか調査した後、ログイン試行を DocumentCompleted イベント ハンドラーに挿入しました。
これが私のコードです:
public void wb_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
wb.Navigate("fooPage");
var browser = (WebBrowser)sender;
HtmlElement email = CookieReader.GetElement("email", browser);
HtmlElement password = CookieReader.GetElement("pass", browser);
email.SetAttribute("email", "foo@something.com");
password.SetAttribute("pass", "foo");
HtmlElement loginElement = CookieReader.GetElement("fooLog", browser);
loginElement.InvokeMember("click"); //wb_DocumentCompleted Method Continues...
ログインできませんでした(ログインボタンが正しいことを再確認しました)。ブラウザ オブジェクトの ReadyState プロパティに問題があるようです。IsBusy プロパティは常に False ですが、常に読み込み中です。また、DocumentCompleted イベントが発生したため、ページの読み込みが完了するはずでした。これがどのように可能になるかについてのアイデアはありますか?
さらに、デバッグ時に InvokeMember メソッドが html INPUT 要素を変更し、無効なタグが表示されます (disabled=\"\" - 私が間違っていなければ、これは HTML5 disabled="disabled" です)。このタグが追加された理由はわかりません (以前はありませんでした)。ページの永続的な Loading ReadyState に何らかの形で関連している場合は、洞察やアドバイスをいただければ幸いです。