【问题标题】:How to auto fill a text box in C# if it has a name attribute but no ID如果文本框有名称属性但没有 ID,如何在 C# 中自动填充文本框
【发布时间】:2013-04-16 02:56:04
【问题描述】:

如果我有一个包含 Web 浏览器控件的应用程序 [c#],并且我想在第一个文本区域中填充有关单击按钮的信息。我该怎么做?

如果有,我将如何使用 Web 浏览器在 C# 中自动填充 textArea

 <textarea class="profile" name="message"></textarea><br />

但没有设置 ID 字段?

[C#]

private void messageToolStripMenuItem_Click(object sender, EventArgs e)
    {
        webBrowser1.Document
           .GetElementsByTagName("textarea")
           .GetElementsByName("message")[0]
           .SetAttribute("value", "Something");
      //  HtmlDocument doc = this.webBrowser1.Document;
     //   doc.GetElementsByTagName("textarea")[0].SetAttribute("Value", "a");
    }


    private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
    {
        MessageBox.Show("LoadedLux");
        webBrowser1.Document
            .GetElementsByTagName("input")
            .GetElementsByName("q")[0]
            .SetAttribute("value", "Something");
    }

【问题讨论】:

  • 你在说什么?
  • 你会怎么设置那个id ID?展示该示例,它可能有助于为您的案例找到解决方案。
  • 例如,如果它是:
    那么我可以使用 document.GetElementById(" box").SetAttribute("Value", "ThisNewBox");但是如果没有 ID SET 怎么办?
  • @user1999321,如果您可以访问代码,您可以将 id 添加到 textarea 并使用您评论中的代码来访问它吗?如果你想从 C# 代码访问你需要 id 和 runat="server" 标签。
  • @rs。我无权访问代码。我无法改变它。这会破坏这个问题的目的。

标签: c#


【解决方案1】:

你试过了吗?:

webBrowser1.Document.GetElementsByTagName("textarea").GetElementsByName("message")[0].SetAttribute("Value", "ThisNewBox");

更新

我刚刚在 Google.com 上尝试了以下操作,效果很好:

private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            webBrowser1.Document
                .GetElementsByTagName("input")
                .GetElementsByName("q")[0]
                .SetAttribute("value", "Something");
        }

【讨论】:

  • @ Matt .. 它给出了这个错误:“0”的值对“索引”无效。 “索引”应介于 0 和 -1 之间。参数名称:索引
  • 查看我的更新。您可以通过将您的 URL 设置为 google.com 并使用上面的代码来测试它。然后修改成自己的场景
  • PS - 我看到你是新来的。欢迎。如果它有助于解决您的问题,请记住接受它作为“答案”。
  • 谷歌的工作,但是当我在这个网站上尝试时,它仍然给出同样的索引错误。我将输入更改为 textarea 并将 q 更改为消息...
  • 如果文档在您开始查询之前尚未加载,则可能会发生上述错误。当文档(网页)完成加载后,将您的代码移动到 DocumentCompleted 事件处理程序或其他适当的位置。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-20
  • 1970-01-01
  • 2011-06-15
相关资源
最近更新 更多