【发布时间】:2017-06-24 08:37:51
【问题描述】:
如果您导航到this website,您会看到有一个ExportExcel 按钮。如果我查看源代码,我会在这种格式下找到按钮:
<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>
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 为空:
对象引用未设置为对象的实例。
我哪里错了?还是有更好/不同的方法?
编辑:
基于 suggestion 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");
}
}
【问题讨论】:
-
尝试将您的代码包装在
webBrowser.DocumentCompleted事件中,这将解决此问题。 -
@DavidR 谢谢。你能检查我的编辑吗?
-
你能设置一个调试点并检查执行是否在那里停止吗?
-
@DavidR 是的,我使用断点进行调试,但我从未遇到过
标签: javascript c# jquery asp.net