0

是否可以对 MS AJAX 控制工具包的HTML 编辑器进行单元测试?我试过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 的示例页面时,在编辑器中输入一些文本并单击“提交”按钮,这是它创建的测试用例:

[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 中重新运行记录的操作的日志消息:

[信息] 执行: |打开 | /AJAX/AjaxControlToolkit/Samples/HTMLEditor/HTMLEditor.aspx | |

[信息] 执行:|点击| ctl00_SampleContent_submit | |

4

1 回答 1

1

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

<body contentEditable="true">

您应该能够使用 javascript 更新内部文本

IE.Frame(Find.BySrc(frameSrc)).Eval( ... javascript goes here ... );

watiN 中的命令,然后单击按钮。

另一种方法是移动鼠标,然后单击,然后发送键。

于 2009-06-09T03:34:35.410 回答