如何填充文本区域并使用c#单击按钮
本文关键字:按钮 单击 区域 文本 何填充 填充 | 更新日期: 2023-09-27 18:26:44
我在填充文本区域时遇到问题,请使用c#代码单击按钮。。。如果你有,请给我举个例子。我不在乎你是在使用网络浏览器还是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的方法。。基本上得益于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或名称。。
在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不是唯一的,您可以返回一个类型的所有元素,然后按索引引用。例如: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 64位上测试