-1

请仔细阅读我的代码。现在我要做的是创建一个将在博客上发布的应用程序。现在,它包含许多代码,但下面提供的代码是最后一部分,这部分不能正常工作。到目前为止,代码中没有错误,但程序正在跳过 foreach 循环部分。

页面 HTML 的一部分

<div class="action_bar">
  <input type="submit" class="button blue" value="Submit" onclick="this.form.action='articleadd.php';this.form.target='_self';">
  <input type="button" class="button" value="Preview" onclick="this.form.action='articlepreview.php';this.form.target='_preview';this.form.submit();">
  <a href="articleslist.php" class="button">Go Back</a> 
</div>

我需要你的帮助来告诉我该怎么做才能告诉程序进入“Else IF”,设置所有值,然后单击提交。请帮忙!!

C# 代码

theElementCollection = browser.Document.GetElementsByTagName("a");

foreach (HtmlElement curElement in theElementCollection)
{
    ctrlIdentity = Convert.ToString(curElement.GetElementsByTagName("innerText"));
    if (ctrlIdentity == null)
    {
        Console.WriteLine("You are not logged in. Log in again.");
        goto LOGINAGAIN;
    }
    else if (ctrlIdentity == "Make \"Keyword (3)\" bold ")
    {
        browser.Document.GetElementById("project_title").SetAttribute("value", projectTitle);
        browser.Document.GetElementById("article_title").SetAttribute("value", title);
        browser.Document.GetElementById("article_content").SetAttribute("value", content);
        browser.Document.GetElementById("article_tags").SetAttribute("value", tags);
        browser.Document.GetElementById("article_url_1").SetAttribute("value", url);
        browser.Document.GetElementById("article_keyword_1").SetAttribute("value", keywords);
        browser.Document.GetElementById("article_url_2").SetAttribute("value", url2);
        browser.Document.GetElementById("article_keyword_2").SetAttribute("value", keywords2);
        browser.Document.GetElementById("article_url_3").SetAttribute("value", url3);
        browser.Document.GetElementById("article_keyword_3").SetAttribute("value", keywords3);

        if (curElement.GetAttribute("value").Equals("Submit"))
        {
            curElement.InvokeMember("click");
            Console.WriteLine("Clicked................");
        }
        else
            Console.WriteLine("Unable to click!!!................");
     }
     else
         Console.WriteLine("ERROR!!!! Not working.");
 }
4

1 回答 1

1

curElement.GetElementsByTagName("innerText")看起来不正确。GetElementsByTagName查找具有给定名称的 HTML 元素(“标签”)。我猜您的意思是获取elementinnerText的属性,如下所示:

ctrlIdentity = Convert.ToString(curElement.GetProperty("innerText"));
于 2012-10-09T02:59:23.543 回答