Web 应用程序用户界面低层测试自动化

发表于:2009-11-20 12:00

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:James McCaffrey    来源:51Testing软件测试网采编

分享:

  下一步,我模拟了对“Last Name”单选按钮的检查,向文本框控件中输入“urk”:

Console.WriteLine("\nSelecting ''Last Name'' radio button");
HTMLInputElement radioButton =
   (HTMLInputElement)theDoc.getElementById("RadioButtonList1_0");
radioButton.@checked = true;

Console.WriteLine("Setting text box to ''urk''");
HTMLInputElement textBox =
  (HTMLInputElement)theDoc.getElementById("TextBox1");
textBox.value = "urk";

  这两段代码是非常相似的,并且看起来相当明白。我通过getElementByID方法获得了HTMLInputElemen对象的引用。在拥有这个对象之后,我能使用它的属性或方法来操纵它。这里我选择单选按钮控件的“checked”属性(因为在C#中checked是一个保留字,我必须使用 “@checked”)和文本框控件的“value”属性。按你下面看到的方式点击Search按钮:

Console.WriteLine("Clicking search button");
HTMLInputElement button =
  (HTMLInputElement)theDoc.getElementById("Button1");
button.click();
documentComplete.WaitOne();

  在这个例子中,我需要调用WaitOne方法来确保表示搜索结果的页面被充分装载了。通过一些很小的实验,你会发现你能虚拟操纵任何HTML元素。例如,我能模拟下拉框的选择、超链接的点击,当然在这个测试场景中我无需这样做。在我操作Web应用程序之后,我必须检查最终状态的正确性。

Console.WriteLine("\nSeeking ''Burke, Brian'' in list box");
HTMLSelectElement selElement =
  (HTMLSelectElement)theDoc.getElementsByTagName("select").item(0, null);
if (selElement.innerText.ToString().IndexOf("Burke, Brian") >= 0)
{
  Console.WriteLine("Found target string");
  pass = true;
}
else
{
  Console.WriteLine("*Target string not found*");
}

  一般模式是通过共同的标签名获得一个HTML元素集的引用,然后使用属性得到某一特定元素,然后获取表示该元素头标签和尾标签之间数据串的 innerText。这里,我获得了所有<select>元素的引用,然后通过元素集的属性得到了第一个<select>元素 ——当然,也是我的Web页面中唯一的<select>元素。这是由一个ASP.NET列表框控件生成的HTML。传递给项目属性的参数有点复杂。第一个参数既可以是整数,也可以是字符串,前者被理解为基于0的索引值,后者被理解为标签名。我向项目属性的第二个参数传递一个空值NULL。这个参数也是一个索引值,但它只是在项目属性返回一个集合而不是一个原子对象时才有用。有时你需要访问不是任何HTML字元素中的文档体中的值,下面的代码片断向你展示了一种达到目的的方法:

Console.WriteLine("Seeking ''Search complete'' in body");
HTMLBody body = (HTMLBody)theDoc.getElementsByTagName("body").item(0, null);
if (body.createTextRange().findText("Search complete", 0, 0) == true)
{
  Console.WriteLine("Found target string");
  pass = true;
}
else
{
  Console.WriteLine("*Target string not found*");
}

54/5<12345>
春暖花开更文季,点击参与还有惊喜礼品~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计

法律顾问:上海漕溪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2023
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号