如果您导航至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
为空:
对象引用未设置为对象的实例。
我哪里错了?或者有更好/不同的方式吗?
修改
根据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 :(得分: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");
}
希望它有所帮助。