免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3243 | 回复: 0
打印 上一主题 下一主题

powershell 模拟IE行为 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-06-09 17:03 |只看该作者 |倒序浏览
转:
powershell 模拟IE行为

本来是想尝试使用curl模拟post向新浪发送微博,但是试了几次都没有成功。看到一些文章于是想到可以使用powershell模拟IE的动作来做。发现这样做更为简便

1 可以先用IE来自动读取cookie,而不用在代码中直接设置cookie

2 powershell是模拟正常用户的行为,服务器端几乎无法对这种行为进行禁止

3 代码简单,容易进行修改



下面是powershell的代码(运行前先手动使用IE登录微博,并让IE记录用户名和密码,记录cookie)
  1. function NavigateIE($url)
  2. {
  3.     $ie = new-object -com "InternetExplorer.Application";
  4.     $ie.navigate($url);
  5.     #$ie.visible = $true;
  6.     [System.Threading.Thread]::Sleep(2000);
  7.     return $ie;
  8. }

  9. function FindTag($params)
  10. {
  11.     $ie = $params[0];
  12.     $tagname = $params[1];
  13.     $contain = $params[2];
  14.     $doc = $ie.document;
  15.     $tags = @($doc.getElementsByTagName($tagname));
  16.     foreach($tag in $tags)
  17.     {
  18.         if($tag.outerHTML.contains($contain))
  19.         {
  20.             $sel = $tag;
  21.             break;
  22.         }
  23.     }
  24.     return $sel;
  25. }

  26. $ie = NavigateIE("http://weibo.com/12321");

  27. $talk = FindTag($ie, "textarea", 'id=publish_editor');

  28. $but = FindTag($ie, "span", 'class=bgColorB');

  29. $talk.value = "test";
  30. $but.click();
复制代码
主要的函数是:NavigateIE和FindTag,一个函数阅读为打开IE,一个函数阅读为找到标签



代码的流程就是:  打开IE -- 找到输入框 -- 填写信息 -- 找到提交按钮 -- 单击提交按钮

很简洁明了



PS:这个代码不是针对新浪微博的行为。只是闲来无事的实验。



个人认为这种方法应该可以使用在为网站的测试人员做模拟测试,因为这个代码操作就是和人的行为操作是完全一致的。能很好的模拟人的行为,也有更强的说服力。但是现在还没遇到实际的情况使用。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP