[英]C# javascript click button by tag and attribute
我在让程序单击按钮时遇到了一些麻烦:
<a class="button_recruit" style="letter-spacing: -1px" href="/myrecruitlink" data-executing="0">Recruit</a>
那是我试图单击的按钮,但是当我为其添加代码时,它什么也没做,这是C#的新手,正试图学习它。 因此,如果有人指出我在做什么错,我将非常感激。
这是程序代码:
namespace clean_test
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
web.ScriptErrorsSuppressed = true;
Registry.SetValue("HKEY_CURRENT_USER\\AppEvents\\Schemes\\Apps\\Explorer\\Navigating\\.Current", "", "NULL");
web.Navigate("http://www.mywebsite.com");
}
private void recruit_Click(object sender, EventArgs e)
{
HtmlElementCollection elems = web.Document.GetElementsByTagName("a");
foreach (HtmlElement elem in elems)
{
String value = elem.GetAttribute("value");
if (value != null && value.Length != 0 && value.Equals("Recruit"))
{
recruit.PerformClick();
}
}
}
}
}
你为什么不去客户端呢?
<script type="text/javascript">
function NewFunction(){
//do something here
}
</script>
并更改为具有OnClientClick
属性的按钮
<asp:Button ID="Button1" runat="server" Text="Button" CssClass="button_recruit" style="letter-spacing: -1px" OnClientClick="recruit_Click" />
或将onclick
添加到您必须触发javascript方法的现有元素。
<a class="button_recruit" style="letter-spacing: -1px" href="/myrecruitlink" data-executing="0" onclick=""NewFunction();">Recruit</a>
我认为其他人不理解您的问题。 您需要以下行:
private void recruit_Click(object sender, EventArgs e)
{
HtmlElementCollection elems = web.Document.GetElementsByTagName("a");
foreach (HtmlElement elem in elems)
{
String value = elem.GetAttribute("value");
//you can use elem.InnerText.Equals("Recruit") too, if value == null.
if (value != null && value.Length != 0 && value.Equals("Recruit"))
{
elem.InvokeMember("click");
}
}
}
希望我能帮助您!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.