7.3 操纵并检查IE Shell
问题
如何通过编程的方式来操纵并检查用于测试的IE浏览器,以便能够模拟一些用户操作,比如调整浏览器大小和读取状态栏(status bar)的内容。
设计
通过InternetExplorer对象的一些属性和方法,比如Height、Width和StatusText等等,来完成上述操作。
方案
InternetExplorer ie = null;
// 把ie连接到IE进程——参见7.1节
Console.WriteLine("Setting IE to size 450x360");
ie.Width = 450;
ie.Height = 360;
Thread.Sleep(1000);
if (ie.StatusText.IndexOf("Done") == -1)
Console.WriteLine("Could not find 'Done' in status bar");
else
Console.WriteLine("Found 'Done' in status bar as expected");
Thread.Sleep(1000);
Console.WriteLine("Moving IE to position (50,100)");
ie.Left = 50;
ie.Top = 100;
Thread.Sleep(1000);
Console.WriteLine("Checking address bar value");
if (ie.LocationURL != "http://server/path/WebApp.aspx")
pass = false;
注解
当编写针对Web UI的自动化测试程序时,需要把IE中的3个区域考虑在内——客户区域,即待测的Web页面所在的区域;Shell区域,即诸如地址栏和回退按钮等IE控件所在的区域;以及其他窗体,比如alert对话框等等,这些窗体与IE是分开的。InternetExplorer对象提供了一些属性和方法用于操纵(可用来模拟用户操作)和检查Shell(可用来判断某个测试场景通过与否)。这些属性和方法都有完备的文档,下面是9种最常用的属性和方法。
l GoBack():回退到历史列表里的上一项。
l GoForward():向前导航到历史列表里的下一项。
l GoHome():转到当前主页。
l Refresh():刷新当前加载到IE里的页面。
l Quit():关闭IE。
l Height,Width:设置IE外壳的高度和宽度(以像素为单位)。
l Top,Left:设置IE外壳的左上角位置(以像素为单位)。
除了上面列出的9种方法和属性,下面5个属性也很有用,可以用它们来判断测试场景通过与否。
l FullScreen:如果IE在全屏模式下运行,则返回true。
l MenuBar:如果IE的菜单栏可见,则返回true。
l Resizable:如果可以调整IE的大小,则返回true。
l LocationURL:返回IE当前显示页面的URL。
l StatusText:返回IE状态栏里的文本。







