C# 点击临时电子邮件网站中的验证链接

C# 点击临时电子邮件网站中的验证链接,c#,html,C#,Html,我正在编写一个小应用程序,它可以自动创建一个帐户。我使用该网站生成电子邮件地址 目前,在我的代码中,日志显示链接已被单击,但事实并非如此。我的第一个问题是注册后有3封电子邮件发送,这导致了下面的HTML代码。这两个问题都没有id,唯一的区别是“标题主题” 因此,我试图通过搜索“account”一词来捕获第一封正确的电子邮件,并在第二封邮件中搜索“bevestigen”一词。尽管日志显示链接已被删除,但事实并非如此 有人能帮我用一种更聪明、更健壮的方式来捕捉正确的电子邮件并点击链接吗 这是因为即使

我正在编写一个小应用程序,它可以自动创建一个帐户。我使用该网站生成电子邮件地址

目前,在我的代码中,日志显示链接已被单击,但事实并非如此。我的第一个问题是注册后有3封电子邮件发送,这导致了下面的HTML代码。这两个问题都没有id,唯一的区别是“标题主题”

因此,我试图通过搜索“account”一词来捕获第一封正确的电子邮件,并在第二封邮件中搜索“bevestigen”一词。尽管日志显示链接已被删除,但事实并非如此


有人能帮我用一种更聪明、更健壮的方式来捕捉正确的电子邮件并点击链接吗

这是因为即使
InnerText
不相等(
account
Bevstigen
),您仍在进行日志记录。看看你的if块。您还可以退出
foreach
,因此只查看单个链接。在两个
if
语句之后使用
{}
。例如:

foreach (HtmlElement link in links)
{
    if (link.InnerText.Equals("account"))
    {
        link.InvokeMember("Click");
        Log("I clicked that email you asked");
        RecievedConfEmail = true;
        break;
    }
}


感谢这个“修复”了点击链接的假阳性,并确认了为什么没有确认。虽然我无法理解为什么它与HTML不匹配,也没有单击链接。@Senaxx请尝试
InnerText.Contains
,而不是
InnerText.Equals
。您当前正在运行
“Nu BEVSTIGEN”==“BEVSTIGEN”
,这是错误的。还要注意区分大小写。
<td align="center"
    width="150"
    height="40"
    bgcolor="#3071a3"
    style="-webkit-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px; color: #ffffff; display: block;">
    <a href="https://account.sonyentertainmentnetwork.com/liquid/cam/account/email/validate-email.action?service-entity=np&amp;token=YTVhOTc4ZjItMDI230F3cH9ehcugYxy%2BC9YWHgnQ8l8lh2v%2F943yVVYQWQS4XUlJNMHt0cUlVMpBGAdc7TcwraMoF8K6CQr5QsfaDknPNIgmmWUGyM%2FcEF67%2BHk%3D&amp;request_locale=nl_NL"
       style="color: #ffffff; font-size:16px; font-weight: bold; font-family: Arial, Helvetica, sans-serif; font-size:18px; text-decoration: none; line-height:40px; width:100%; display:inline-block">Nu bevestigen</a>
</td>
void DoConfirmation()
        {
            Log("Verifying Email...");
            NavigateAndWait("http://temp-mail.org");
            bool RecievedConfEmail = false;

            for (;;)
            {
                if (!RecievedConfEmail)
                {
                    HtmlElementCollection links = _WebDocument.GetElementsByTagName("A");

                    foreach (HtmlElement link in links)
                    {
                        if (link.InnerText.Equals("account"))
                            link.InvokeMember("Click");
                        Log("I clicked that email you asked");
                        RecievedConfEmail = true;
                        break;
                    }
                }
                else
                {
                    HtmlElementCollection links = _WebDocument.GetElementsByTagName("A");

                    foreach (HtmlElement link in links)
                    {
                        if (link.InnerText.Equals("Bevestigen"))
                            link.InvokeMember("Click");
                        Log("I clicked IN the Email #2");
                        return;
                    }
                }
                Wait(25);
            }
        }
foreach (HtmlElement link in links)
{
    if (link.InnerText.Equals("account"))
    {
        link.InvokeMember("Click");
        Log("I clicked that email you asked");
        RecievedConfEmail = true;
        break;
    }
}
foreach (HtmlElement link in links)
{
    if (link.InnerText.Equals("Bevestigen"))
    {
        link.InvokeMember("Click");
        Log("I clicked IN the Email #2");
        return;
    }
}