0

我在填充文本区域并使用我的 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>

这是我尝试使用的类..基本上来自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 或名称..

4

1 回答 1

2

在 WatiN 中,您可以使用Find.ByClassor by index 来查找元素

这将闪烁按钮,而不是单击它,以进行概念验证

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 64bit 上测试

于 2013-08-08T18:51:21.283 回答