2016-11-03 6 views
0

C#でAPI呼び出しを使用してスクリプトを実行します。私はウェブページを開きたくないだけで、スクリプトだけを実行する必要があります。私はこれを試しています:C#を使用してWebページからAPI呼び出しでスクリプトを実行します。

HttpWebRequest request = WebRequest.Create(URL) as HttpWebRequest; 
HttpWebResponse response = request.GetResponse() as HttpWebResponse; 

HtmlDocument doc; //I have tried HtmlDocument = new HtmlDocument();, didn't work. 
var resultStream = response.GetResponseStream(); 
doc.LoadHtml(resultStream); // I have tried using Load instead of LoadHtml,didn't work out. 
doc.InvokeScript("Submit"); 

私は、割り当てられていない変数のdocの使用、エラーが発生します。 docには関数名LoadHtmlが含まれていません。私はMicrosoft.VisualStudio.TestTools.UITesting.HtmlControls;を追加しましたが、助けにはなりませんでした。

質問HtmlDocument.LoadHtml from WebResponse?Get HTML code from website in C#を確認しましたが、ドキュメントでエラーが発生しませんでした。

すべての解決策。

答えて

1

あなたは

string html = new WebClient().DownloadString(URL); 
WebBrowser browser = new WebBrowser() 
{ 
    ScriptErrorsSuppressed = true, 
    DocumentText = string.Empty 
}; 
HtmlDocument doc = browser.Document.OpenNew(true); 
doc.Write(html); 
doc.InvokeScript("Submit"); 

は、それが動作ホープのHTMLDocumentをロードする方法を変更する必要があります。

+0

私はそれが0の引数を受け入れるコンストラクタが存在しないというエラーを与え、それを試してみました。 –

+0

HTMLアジリティパックを使用していますか? –

+0

いいえ、私はそれを使用していません.. –

0
HtmlDocument doc; //I have tried HtmlDocument = new HtmlDocument();, didn't work. 

あなたがない限り、これは動作しません。

HtmlDocument doc = new HtmlDocument(/*someUri*/, /*documentLocation*/); 

あなたがドキュメントを初期化する必要があります。あなたは

use of unassigned variable doc 

詳細はこちらのドキュメントをチェックしてください見ている理由です。それによると

https://msdn.microsoft.com/en-us/library/microsoft.visualstudio.testtools.webtesting.htmldocument.aspx

を、コンストラクタのシグネチャは次のとおりです。

のHTMLDocument(ウリ、文字列)

th e説明:

HtmlDocumentクラスの新しいインスタンスを初期化します。このコンストラクタは>文字列を取り、それをドキュメントとして使用します。

また、ドキュメントを見ることで、それは方法LoadHtmlを(持っていない)

関連する問題