Если вы перейдете на 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>
После 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
равно нулю: ссылка
объекта не установлен в экземпляр объекта.
Где я иду не так? Или есть лучший/другой способ?
EDIT:
основе с 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");
}
}
Попробуйте обернуть свой код внутри события 'webBrowser.DocumentCompleted', которое решит эту проблему. –
@DavidR Спасибо. Можете ли вы проверить мое редактирование, пожалуйста? –
Можете ли вы установить точку отладки и проверить, прекращено ли выполнение? –