我在填写文本区域时遇到问题,并使用我的c#代码点击按钮...如果你有我不关心你是否使用webbrowser或者watin或其他什么,请给我一个例子......
<textarea class="textarea" placeholder="Say something" style="overflow: hidden;"></textarea>
<div class="comment-submit-container">
<button class="comment-submit" type="submit">Post Comment</button>
<img class="comment-submit-loading" width="16" height="16" src="www.notimportantlink.com" alt="">
</div>
这是我尝试过使用class..basically来自stackoverflow的帮助
webBrowser1.DocumentText = "text with classes";
webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser1_DocumentCompleted);
void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
foreach (HtmlElement txt in webBrowser1.Document.GetElementsByTagName("textarea"))
{
if (txt.GetAttribute("ClassName") == "textarea")
{
txt.SetAttribute("value", "adsasdassd");
// MessageBox.Show("uneseno");
}
}
foreach (HtmlElement btn in webBrowser1.Document.GetElementsByTagName("button"))
{
if (btn.GetAttribute("ClassName") == "comment-submit")
{
btn.InvokeMember("Click");
MessageBox.Show("kliknuto");
}
}
}
正如您在html代码中看到的那样,没有ID或名称..
答案 0 :(得分:2)
在WatiN中,您可以使用Find.ByClass
或索引来查找元素
这将闪烁按钮,而不是单击它,以进行概念验证
var ie = new IE();
ie.GoTo(@"[link goes here");
ie.TextField(Find.ByClass("textarea")).TypeText("words go here");
ie.Button(Find.ByClass("comment-submit")).Flash(2);
如果类 textarea 不唯一,则可以返回类型的所有元素,然后按索引引用。 EG:ie.TextFields[0].TypeText("words go here by index");
或合并查找ie.TextField(Find.ByClass("textarea") && Find.ByIndex(0)).TypeText("words go here compound find");
使用HTML
<html>
<title>This is the title.</title>
<body>
<textarea class="textarea" placeholder="Say something" style="overflow: hidden;"></textarea>
<div class="comment-submit-container">
<button class="comment-submit" type="submit">Post Comment</button>
<img class="comment-submit-loading" width="16" height="16" src="www.notimportantlink.com" alt="">
</div>
</body>
<html>
在Watin 2.1,IE9,Win7 64bit
上测试