webbrowserの自動化処理でdisabledを処理するには？

[code]

    <input class="test_class" data-nemo="submit" tabindex="0" value="ボタン" type="submit" disabled="">
    
[/code]

このdisabledを除去、または無効化にしたいのですが、  
どのように記述すればよいでしょうか？

visualstudio express 2015 for desktop (windows10 64bit)




質問文では言及されていませんが、実現方法に依らず、操作対象となるタグをどのように特定するかという問題があります。`id`属性が適切に付与されていれば特定が簡単ですが、質問文の`<input>`タグには付与されていないように見受けられます。この点は本質問の範囲外ですので、とりあえず`input[type=submit]`で特定可能と仮定して回答します。

WebBrowserコントロールが基盤としているブラウザーはInternet
Explorerですが、読み込んだHTMLを基にDOMツリーを構築しています。各要素に対応するDOMオブジェクト（Document Object
Model）はCOMオブジェクト（Component Object Model）として表現されています。更に、.NET
FrameworkはCOMオブジェクトを操作する機能も持っているため、結果的にHTML要素の操作は簡単です。

[`WebBrowser.Document`プロパティ](https://msdn.microsoft.com/ja-
jp/library/system.windows.forms.webbrowser.document\(v=vs.110\).aspx)では[`HtmlDocument`オブジェクト](https://msdn.microsoft.com/ja-
jp/library/system.windows.forms.htmldocument\(v=vs.110\).aspx)が得られますが、更に[`HtmlDocument.DomDocument`プロパティ](https://msdn.microsoft.com/ja-
jp/library/system.windows.forms.htmldocument.domdocument\(v=vs.100\).aspx)で[`IHTMLDocuemnt2`オブジェクト](https://msdn.microsoft.com/en-
us/library/aa752574.aspx)が得られます。ややこしいですが、このオブジェクトがJavaScript上での[`document`オブジェクト](https://developer.mozilla.org/ja/docs/Web/API/document)に対応しています。

`document`オブジェクト得られれば、JavaScriptと同等の処理をC#言語で記述できます。最終的に`webBrowser1`オブジェクトのHTMLを操作する場合は

[code]

    dynamic document = webBrowser1.Document.DomDocument;
    document.querySelector("input[type=submit]").disabled = false;
    
[/code]

と書けます。




質問文では言及されていませんが、実現方法に依らず、操作対象となるタグをどのように特定するかという問題があります。`id`属性が適切に付与されていれば特定が簡単ですが、質問文の`<input>`タグには付与されていないように見受けられます。この点は本質問の範囲外ですので、とりあえず`input[type=submit]`で特定可能と仮定して回答します。

WebBrowserコントロールが基盤としているブラウザーはInternet
Explorerですが、読み込んだHTMLを基にDOMツリーを構築しています。各要素に対応するDOMオブジェクト（Document Object
Model）はCOMオブジェクト（Component Object Model）として表現されています。更に、.NET
FrameworkはCOMオブジェクトを操作する機能も持っているため、結果的にHTML要素の操作は簡単です。

[`WebBrowser.Document`プロパティ](https://msdn.microsoft.com/ja-
jp/library/system.windows.forms.webbrowser.document\(v=vs.110\).aspx)では[`HtmlDocument`オブジェクト](https://msdn.microsoft.com/ja-
jp/library/system.windows.forms.htmldocument\(v=vs.110\).aspx)が得られますが、更に[`HtmlDocument.DomDocument`プロパティ](https://msdn.microsoft.com/ja-
jp/library/system.windows.forms.htmldocument.domdocument\(v=vs.100\).aspx)で[`IHTMLDocuemnt2`オブジェクト](https://msdn.microsoft.com/en-
us/library/aa752574.aspx)が得られます。ややこしいですが、このオブジェクトがJavaScript上での[`document`オブジェクト](https://developer.mozilla.org/ja/docs/Web/API/document)に対応しています。

`document`オブジェクト得られれば、JavaScriptと同等の処理をC#言語で記述できます。最終的に`webBrowser1`オブジェクトのHTMLを操作する場合は

[code]

    dynamic document = webBrowser1.Document.DomDocument;
    document.querySelector("input[type=submit]").disabled = false;
    
[/code]

と書けます。

