是否可以对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 | |
答案 0 :(得分:1)
查看控件,它是一个IFrame,编辑器实际上是一个可编辑的主体
<body contentEditable="true">
您应该可以使用
使用javascript更新内部文本IE.Frame(Find.BySrc(frameSrc)).Eval( ... javascript goes here ... );
在watiN中的命令然后单击按钮。
另一种方法是进行鼠标移动,然后单击,然后发送密钥。