c#来自Web浏览器输入的占位符

时间:2014-09-30 19:16:03

标签: c# winforms browser placeholder

有点奇怪,但似乎没有什么可以和#34;占位符"在winforms c#的Web浏览器中。

在我的测试程序中,我试图从网站获取特定的输入字段,通过它""占位符"并在字段中设置一个值。名称和类别总是不同的,唯一的"足迹"是占位符。

例如在某些网站的html中,有以下代码的输入字段: <input type="text" name="Username" placeholder="Username">问题是通过查找占位符在字段中设置值。

我将输入元素用于: HtmlElementCollection htmlcol = webBrowser1.Document.GetElementsByTagName("input"); 并使用循环htmlcol[i].GetAttribute("placeholder").Equals("Username").搜索特定输入它只是不起作用

关于如何解决问题的任何想法或示例?

由于

2 个答案:

答案 0 :(得分:0)

首先,您需要获取该容器元素然后您可以为其设置值

例如,

        HtmlElementCollection htmlcol = webBrowser1.Document.GetElementsByTagName("input");

        foreach(HtmlElement he in htmlcol){
        if(he.innerHtml.Contains("Username"))

        he.SetAttribute("value",yourstring);
        break;
        }

答案 1 :(得分:0)

经过2天的测试后,我发现通过webbrowser访问时,输入字段(除了name,id,class和类似名称)内的占位符innerHtml中没有任何内容。我尝试像htmlcol[i].GetAttribute("placeholder").Equals("Username");一样访问,但由于某种原因它没有用。

对我有用的是 OuterHtml ,类似这样:

HtmlElementCollection htmlcol = webBrowser1.Document.GetElementsByTagName("input");
for (int i = 0; i < htmlcol.Count;  i++)
     {
     if (htmlcol[i].OuterHtml.Contains("Username"))
        {
           htmlcol[i].SetAttribute("value", pUsername.Text);
        }
}

我希望我的回答可以帮助有关这个问题的人。

由于