2017-02-07 7 views
0

this websiteに移動すると、ExportExcelボタンがあることがわかります。 I ビューソース場合、私はこのフォーマットの下のボタンを見つける:IDのないWebページのボタンをクリックするにはどうすればいいですか?

<td align="right" class="ExportExcel" valign="middle">          
    <a href="JavaScript:void(0)" onClick="openExport('../pages/ListExportToExcel.aspx?zipCode=&city=&county=&sState=MI&fromPrice=0&toPrice=0&fCaseNumber=&bed=0&bath=0&street=&buyerType=0&specialProgram=&Status=0&indoorAmenities=&outdoorAmenities=&housingType=&stories=&parking=&propertyAge=');return false;" >Export to</a> 
</td> 

this solution後:

WebBrowser MyBrowser = new WebBrowser(); 
MyBrowser.Navigate("https://www.hudhomestore.com/Listing/PropertySearchResult.aspx?sState=MI"); 
HtmlElementCollection classButton = MyBrowser.Document.All; 
foreach (HtmlElement element in classButton) 
    if (element.GetAttribute("ExportExcel") == "button") 
     element.InvokeMember("click"); 

MyBrowser.Documentがnullであると、私はエラーを取得しています:

オブジェクト参照オブジェクトのインスタンスには設定されません。

どこが間違っていますか?または、より良い/異なる方法がありますか?

EDIT:

はS uggestion by user @DavidRに基づいて、私は以下試してみましたが、MyBrowser_DocumentCompletedは、任意のヒットを取得することはありません:

public partial class mainForm : Form 
{ 
    WebBrowser MyBrowser = new WebBrowser(); 

    // .. 

    private void mainForm_Load(object sender, EventArgs e) 
    { 
     MyBrowser.Navigate("https://www.hudhomestore.com/Listing/PropertySearchResult.aspx?sState=MI"); 
    } 

    void MyBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) 
    { 
     HtmlElementCollection classButton = MyBrowser.Document.All; 
     foreach (HtmlElement element in classButton) 
      if (element.GetAttribute("ExportExcel") == "button") 
       element.InvokeMember("click"); 
    } 

} 
+0

この問題を解決する 'webBrowser.DocumentCompleted'イベントの中にコードをラップしてみてください。 –

+0

@DavidRありがとうございます。私の編集を確認できますか? –

+0

デバッグポイントを設定し、そこで実行が停止するかどうか確認できますか? –

答えて

1

はすべてAnchor tagsを取得し、あなたがしたいあなたに必要なtagを見つけますクリック。私はコードを作って、これを試してみてください。

 HtmlElementCollection links = MyBrowser.Document.GetElementsByTagName("A"); 
     foreach (HtmlElement link in links) 
     { 
      if (link.InnerText!=null && link.InnerText.Equals("Export to")) 
       link.InvokeMember("Click"); 
     } 

希望します。

+0

Adeelありがとうございますが、私はまだ "_hit_"できません。 'MyBrowser_DocumentCompleted'は実行されません。マシン上で同じコード全体が動作しましたか? –

+0

そして、あなたのコードを 'mainForm_Load'に追加します。' MyBrowser.Document'はまだnullで、エラーが出ます。 –

+0

'WebBrowser'コントロールのインスタンスを作成せず、フォーム上にドラッグしてイベントを登録しました。それ。それがうまくいかない場合は試してみて、ここにコメントを投稿してください。 よろしく! –

関連する問題