Javascript 如何在没有id的网页上单击按钮?
如果导航到,可以看到有一个Javascript 如何在没有id的网页上单击按钮?,javascript,c#,jquery,asp.net,Javascript,C#,Jquery,Asp.net,如果导航到,可以看到有一个ExportExcel按钮。如果我查看源代码,我会在以下格式下找到按钮: <td align="right" class="ExportExcel" valign="middle"> <a href="JavaScript:void(0)" onClick="openExport('../pages/ListExportToExcel.aspx?zipCode=&c
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>
我的浏览器出现错误。文档为空:
对象引用未设置为对象的实例
我哪里做错了?还是有更好/不同的方法
编辑:
基于s,我尝试了以下方法,但MyBrowser\u 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");
}
}
获取所有
锚定标记
,并找到所需的标记
,然后单击该标记。我已经做了一个代码,试试这个
HtmlElementCollection links = MyBrowser.Document.GetElementsByTagName("A");
foreach (HtmlElement link in links)
{
if (link.InnerText!=null && link.InnerText.Equals("Export to"))
link.InvokeMember("Click");
}
希望有帮助。尝试将您的代码包装在
webBrowser.DocumentCompleted
事件中,该事件将解决此问题。@DavidR谢谢。你能检查我的编辑吗?你能设置一个调试点并检查执行是否在那里停止吗?@DavidR是的,我使用了一个断点进行调试,我从来没有点击过。谢谢,但我仍然无法“点击”<代码>MyBrowser\u DocumentCompleted不执行。。同样的代码在你的机器上工作了吗?我将你的代码添加到mainForm\u Load
,MyBrowser。文档仍然为空并弹出一个错误我没有创建WebBrowser
控件的实例,我只是在窗体上拖动它,注册事件,就是这样。你应该试试,如果不行,在这里发表评论。当做如果MyBrowser不是WebBrowser的实例,那么代码中的MyBrowser是什么?当您在WinForm上拖放控件时,Visual Studio
会自动在designer.cs中创建一个实例。我使用Visual Studio指定的默认名称调用了该控件,即webBrowser1
HtmlElementCollection links = MyBrowser.Document.GetElementsByTagName("A");
foreach (HtmlElement link in links)
{
if (link.InnerText!=null && link.InnerText.Equals("Export to"))
link.InvokeMember("Click");
}