自己动手写Web自动化测试框架(2):打开和操纵IE

发表于:2010-3-25 13:19

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

 作者:colblog.net    来源:51Testing软件测试网采编

  包含SHDocVw

  包含两个类库之后,我们就可以使用C#来对IE进行一些基本的操作了。

  我们要添加几个命名空间,来简化我们下面的代码:

using System.Diagnostics;   //要用到进程来启动IE窗口
using System.Threading;     //使用Thread.Sleep来等待
using SHDocVw;
using mshtml;

  除了mshtml和SHDocVw之外,我们还使用了其他的两个命名空间,因为我们要使用System.Diagnostics.Process类启动IE进程,并且获取IE的进程信息,使用System.Threading.Thread的sleep()方法等待。

  接下来,我们就可以写入代码了:

Console.WriteLine("Launching IE ...");
Process p = Process.Start("iexplore.exe","about:blank");
Thread.Sleep(3000);

  第一步,我们要打开IE进程,这里使用了Process的Start静态方法生成一个进程。很好理解,传入了两个参数,一个是IE的exe文件名,也可以写入完整地址;第二个参数是IE自己的参数,表示要打开的链接地址,我们在这里使用一个空白页面。

  接下来的事情就是等待,等待IE进程启动,这里为了让大家更快的抓到本质,没有使用很复杂的等待代码,只是很机械的等待了3秒钟,大家可以根据自己机器的状况进行修改。

  这里为了让大家可以更好的理解,我插一点Process的讲解,如果大家对上面的Process打开没有任何问题的话,直接跳过往下就好了。这里Process.Start()方法其实有4个重载,我们使用了第三个重载函数,也就是第一个输入文件名,第二个输入参数,我们可以在运行命令行中打"iexplore about:blank"直接打开一个空的IE窗口,也可以打"iexplorehttp://www.colblog.net/"直接打开一个浏览到目标网站的IE窗口。

  IE启动了,我们接下来的事情就是把IE附加给SHDocVw.InternetExlporer以便我们可以进行接下来的操作。

Console.WriteLine("Attaching to IE ...");
InternetExplorerie =null;
if(p !=null)

{
  SHDocVw.ShellWindowsallBrowser =newShellWindows();
  if(allBrowser.Count != 0)
  {
    for(inti = 0; i < allBrowser.Count; i++)
    {
      InternetExplorere = (InternetExplorer)allBrowser.Item(i);
      if(e.HWND == (int)p.MainWindowHandle)
      {
        ie = e;
        break;
      }
    }
  }
}
else
{
  Console.WriteLine("Error: Can not Launch IE");
  return;
}
if(ie ==null)
{
  Console.WriteLine("Error: Can not attach to IE");
  return;
}

32/3<123>
《2023软件测试行业现状调查报告》独家发布~

精彩评论

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号