2017-06-27 11 views
-1

ウェブサイトのいくつかのボタンを自動的に押して、htmlのIDを取得してテキスト領域の情報を入力するプログラムを作成したい。WebサイトからHTML IDを取得して情報を入力し、c#またはvb.netのボタンを押す

私はvb.netまたはc#を使用して達成できる方法を知りたいと思います(あなたには分かりやすいことが分かっている場合は教えてください)。私は基本的に、プログラムがWebブラウザを内蔵していることを確認し、それが不可能であれば何をしているのかを見ています。

無数のフォーラムで検索したところ、私はphantom.jsでこのようなことをすることができましたが、正直なところ私はもっと慣れ親しんでいることを好むでしょう。

私はあなたにそれを求めているわけではありません。情報がわかる場所への簡単なリンクです。

+0

私はセレンが役に立つと思います。このリンクを参照してください:http://toolsqa.com/selenium-c-sharp/ –

答えて

0

Windowsフォームでは、Webブラウザコントロールを埋め込み、HTMLドキュメントのDOMコンテンツをプログラムによって操作することができます。また、.Netフレームワークが提供するhtml要素の基本機能を拡張するMicrosoft.mshtmlをインポートすることで、DOMを操作するコントロールがさらにあります。

public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void Form1_Load(object sender, EventArgs e) 
    { 
     this.webBrowser1.Navigated += WebBrowser1_Navigated; 
    } 

    private void WebBrowser1_Navigated(object sender, WebBrowserNavigatedEventArgs e) 
    { 
     var doc = webBrowser1.Document; 
     doc.InvokeScript("alert('hello')"); 
     var forms =doc.GetElementsByTagName("form"); 

    } 

    private void btnGo_Click(object sender, EventArgs e) 
    { 
     webBrowser1.Navigate(txtUrl.Text); 

    } 
} 
+0

'Navigated'イベントを使わないでください。ウェブブラウザ_ **がウェブサイトの読み込みを開始したときにのみ発生します。したがって、変更しようとしている要素がすべて読み込まれていない可能性があります。代わりに、[** 'DocumentCompleted' **](https://msdn.microsoft.com/en-us/library/system.windows.forms.webbrowser.documentcompleted(v = vs.110).aspx)を使用してください。ウェブサイトが_ **完全にロードされているときに発生する** _(注: 'iframe 'などの要素のために複数回提起することができます)。 –

関連する問題