2017-07-13 9 views
0

私はフォーム送信ボタンをクリックしようとしていますが、フォームフィールドに記入することができましたが、識別に使用できるものがないため送信ボタンを放すのに苦労していますか?C#IDまたは強力な識別子を知らずにフォームのボタンをクリックしますか?

のInstagram:

<button class="_ah57t _84y62 _i46jh _rmr7s">Sign up</button> 

どのように私はIDや文句を言わないまで混合することが任意の強い識別子を持たずに、ボタンをクリックすることができますか?

は、私は、入力フィールドに

private void FindAndFillElement(string tag, string attribute, string attributeValue, string attributeReplace, string attributeReplaceValue) 
{ 
    foreach (HtmlElement elem in webBrowser1.Document.GetElementsByTagName(tag)) 
    { 
     if (elem.GetAttribute(attribute) == attributeValue) 
     { 
      elem.SetAttribute(attributeReplace, attributeReplaceValue); 
     } 
    } 
} 

通話するにはどうすればよい:不思議人のため

FindAndFillElement("input", "name", "emailOrPhone", "value", "[email protected]"); 
+0

を呼び出し、ボタンは必要ありません。ボタンは常に同じ場所に存在しますか?つまり、いつも同じ量のコンテンツがそれに先行するのでしょうか?もしあなたがレンダリングされたHTMLを投稿することができれば。 –

+0

InstagramのHTMLで、誰でも見ることができますが、私はView SourceではなくInspect Elementから見ています。 –

答えて

0

を、私はこれを使用して、それに答えました。

private void ClickButtonByInnerText(string innerText) 
{ 
    foreach (HtmlElement elem in webBrowser1.Document.GetElementsByTagName("button")) 
    { 
     if (elem.InnerText == innerText) 
     { 
      elem.InvokeMember("Click"); 
     } 
    } 
} 
1

あなたはただあなたがDOM内のボタンの位置に基づいてターゲットにすることができる機能提出フォーム

document.getElementById("myForm").submit(); 
+0

フォームにはフックするIDがないので、これは悪い答えです。 –

+0

これは、あなたが要素を持っていれば、単にサブミットを呼び出すことができることを示していることを完全に逃したので、悪いコメントです。 id、タグ名、クラス名、cssセレクタ、オブジェクトコレクションで要素を取得できます。 JQueryをミックスに追加すると、フォーム要素を取得するオプションと体系的な方法がさらに増えます。 –

+0

しかし、フォーム要素には一意の識別子がありませんでした。クラスがWebページで少なくとも1回は繰り返していました。 –

関連する問題