2017-11-01 19 views
0

に入力を提出する選択するには、最初の入力AngleSharp、そのようないくつかのページ上の入力やスクリプトのプレスがあるので、私は(実行)(タイプが提出)、SubmitAsyncと同じように、選択入力を質問 を持ってSubmitAsync

var document = _context.Active; 
var form = document.QuerySelector(formSelector) as IHtmlFormElement; 
var button = document.QuerySelector(buttonSelector) as IHtmlFormElement; 
if (form != null){form.SetValues(fields); } 
await form.SubmitAsync(button); 

submit inputs 私は、関数のオーバーロードを介して入力を指定したかったが、それは、それは単に形式で

おかげで入力を指して理解されるように!

+0

私は以下を使用します。document.QuerySelector (buttonSelector).SubmitAsync(fields); –

答えて

0

AngleSharpのフォームにはさまざまなヘルパーが存在します。仕様によれば、入力フィールド/ボタンがフォームを送信するために使用された違いを生み出すことができます。 (有効な名前の付いたボタン/入力を使用した場合)、マウスを提出

  • を使用したボタン/入力の名前を提出
    • フォームを送信するときしたがってW3C準拠したブラウザエンジンには、次の手順を実行しますタイプ=画像フィールドを使用した場合の座標
    • 他のいくつかのより多くのエキゾチックなもの、単純なform.SubmitAsync()は役に立ちものではありませんなぜ我々は我々がすでに知っている、これを議論することを今

    - 私たちが望む/場合には、持っています "どこかをクリックしてフォームを提出してください。しかし、幸いなことに、AngleSharpには(送信の)「ソース」を指定するフォームにもう1つのオーバーロードがあります。このソースは任意のIHtmlElementです。あなたのコードで

    あなたがソースとしてnullを提供している、上記(document.QuerySelector(buttonSelector) as IHtmlFormElementを参照してください - のいずれかIHtmlButtonElementまたはIHtmlInputElement - - いずれにせよIHtmlElementはなく、IHtmlFormElementに - これはではない私は、クエリセレクタは、実際にボタンを得なければならないと仮定「フォームの要素」ではなく「フォーム要素」)。

    したがって次の行は

    document.QuerySelector<IHtmlInputElement>(buttonSelector).Su‌​bmitAsync(fields) 
    

    var form = document.QuerySelector<IHtmlFormElement>(formSelector); 
    
    if (form != null) 
    { 
        form.SetValues(fields); 
        form.SubmitAsync(document.QuerySelector(buttonSelector)); 
    } 
    

    これが役に立てば幸いと同じです!

  • 関連する問題