-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>

プログラムに「ElseIF」の内部に入り、すべての値を設定してから「送信」をクリックするように指示する方法を教えてください。助けてください!!

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 に答える