单元测试MS AJAX Toolkit HTML编辑器

时间:2009-06-02 13:16:48

标签: asp.net unit-testing selenium ajaxcontroltoolkit watin

是否可以对MS AJAX Control Toolkit的HTML Editor进行单元测试?我试过Watin,WebAii和Selenium都没有成功......

华廷

我可以找到与控件相关的文本框,但我尝试访问它时遇到异常:

using (Browser ie = new IE()) {
    ie.GoTo(testUri);
    Assert.IsTrue(ie.ContainsText("Expected text"));

    var textBox = ie.TextField(Find.ById(id => id.Contains("Editor")));
    textBox.TypeText("testing 123");
}
  

System.Runtime.InteropServices.COMException:无法将焦点移动到控件   因为它是不可见的,没有启用,   或者不接受的类型   对焦。

我尝试了Selenium IDE也没有任何成功。当我加载ASP.net's sample page时,在编辑器中键入一些文本并单击“提交”按钮,这是它所做的测试用例:

[Test]
public void TheUntitledTest() {
    selenium.Open("/AJAX/AjaxControlToolkit/Samples/HTMLEditor/HTMLEditor.aspx");
    // Text was typed at this point
    selenium.Click("ctl00_SampleContent_submit");
}

以下是重新运行Selenium IDE中记录的操作的日志消息:

  

[info]执行:| open | /AJAX/AjaxControlToolkit/Samples/HTMLEditor/HTMLEditor.aspx | |

     

[info]执行:| click | ctl00_SampleContent_submit | |

1 个答案:

答案 0 :(得分:1)

查看控件,它是一个IFrame,编辑器实际上是一个可编辑的主体

<body contentEditable="true">

您应该可以使用

使用javascript更新内部文本
IE.Frame(Find.BySrc(frameSrc)).Eval( ... javascript goes here ... );
在watiN中的

命令然后单击按钮。

另一种方法是进行鼠标移动,然后单击,然后发送密钥。