简介:这是powershell 模拟IE行为的详细页面,介绍了和php,有关的知识、技巧、经验,和一些php源码等。
class='pingjiaF' frameborder='0' src='http://biancheng.dnbcw.info/pingjia.php?id=337679' scrolling='no'>本来是想尝试使用curl模拟post向新浪发送微博,但是试了几次都没有成功。看到一些文章于是想到可以使用powershell模拟IE的动作来做。发现这样做更为简便
1 可以先用IE来自动读取cookie,而不用在代码中直接设置cookie
2 powershell是模拟正常用户的行为,服务器端几乎无法对这种行为进行禁止
3 代码简单,容易进行修改
下面是powershell的代码(运行前先手动使用IE登录微博,并让IE记录用户名和密码,记录cookie)
function NavigateIE($url)
{
$ie = new-object -com "InternetExplorer.Application";
$ie.navigate($url);
#$ie.visible = $true;
[System.Threading.Thread]::Sleep(2000);
return $ie;
}
function FindTag($params)
{
$ie = $params[0];
$tagname = $params[1];
$contain = $params[2];
$doc = $ie.document;
$tags = @($doc.getElementsByTagName($tagname));
foreach($tag in $tags)
{
if($tag.outerHTML.contains($contain))
{
$sel = $tag;
break;
}
}
return $sel;
}
$ie = NavigateIE("http://weibo.com/12321");
$talk = FindTag($ie, "textarea", 'id=publish_editor');
$but = FindTag($ie, "span", 'class=bgColorB');
$talk.value = "test";
$but.click();
{
$ie = new-object -com "InternetExplorer.Application";
$ie.navigate($url);
#$ie.visible = $true;
[System.Threading.Thread]::Sleep(2000);
return $ie;
}
function FindTag($params)
{
$ie = $params[0];
$tagname = $params[1];
$contain = $params[2];
$doc = $ie.document;
$tags = @($doc.getElementsByTagName($tagname));
foreach($tag in $tags)
{
if($tag.outerHTML.contains($contain))
{
$sel = $tag;
break;
}
}
return $sel;
}
$ie = NavigateIE("http://weibo.com/12321");
$talk = FindTag($ie, "textarea", 'id=publish_editor');
$but = FindTag($ie, "span", 'class=bgColorB');
$talk.value = "test";
$but.click();
主要的函数是:NavigateIE和FindTag,一个函数阅读为打开IE,一个函数阅读为找到标签
代码的流程就是: 打开IE -- 找到输入框 -- 填写信息 -- 找到提交按钮 -- 单击提交按钮
很简洁明了
PS:这个代码不是针对新浪微博的行为。只是闲来无事的实验。
个人认为这种方法应该可以使用在为网站的测试人员做模拟测试,因为这个代码操作就是和人的行为操作是完全一致的。能很好的模拟人的行为,也有更强的说服力。但是现在还没遇到实际的情况使用。
作者:轩脉刃(yjf512)
出处:(http://www.cnblogs.com/yjf512/)
版权声明:本文的版权归作者与博客园共有。欢迎转载阅读,转载时须注明本文的详细链接。