找回密码
 加入
搜索
查看: 8937|回复: 26

[IE类操作] 怎么模拟一个按钮这么难

 火.. [复制链接]
发表于 2012-5-31 09:41:38 | 显示全部楼层 |阅读模式
本帖最后由 Zuma 于 2012-6-1 16:13 编辑

最新情况,单个用户没问题,多用户顺序登录时出现问题了
*********************************************
一个用户时,用
 $oIE.document.getElementById('Ecom_User_ID').value =111
   $oIE.document.getElementById('Ecom_Password').value = "123"
  ; Sleep(3000)
   _IEFormImageClick($oIE,"index_submit.jpg","src")
不行,最后把ie阻挡弹出窗口放开,才成功

多个用户时
Dim $name[3]=["111","2222","3333"]
Dim $i
;启动ie
$oIE = ObjCreate("InternetExplorer.Application")
$oIE.visible = 1
$oIE.navigate("http://170.117.131.15/mh/index.jsp")
$oIE.top = 0
$oIE.left = 0
$oIE.height = @DesktopHeight-30
$oIE.width = @DesktopWidth

;赋值
for $i=0 to 2 step 1
        ;Do      
       Sleep (1500)
   ;Until $oIE.busy = False Or $oIE.readyState = 4
   $oIE.document.getElementById('Ecom_User_ID').value = $name[$i]
   $oIE.document.getElementById('Ecom_Password').value = "l123"
  ; Sleep(3000)
   _IEFormImageClick($oIE,"index_submit.jpg","src")
   Sleep (6000)
        WinKill("此ie的标题")
Next
;WinKill("ie标题")
系统总是显示只有222用户登录,但另外两个用户分明已经显示在用户名的输入框中,但登录确显示的是222用户,

这是要手动干预,点登录按钮,就能正常登陆

请教各位。谢谢
发表于 2012-5-31 14:27:19 | 显示全部楼层
内容与标题有什么关系呢?没看明白要干什么。
根据标题,似乎要模拟点击一个按钮,但内容却在纠结怎么只显示了222 个用户。
如要模拟点击一个按钮,你该提供网页的源码啊。没源码就如“无米之炊”,难搞啊
 楼主| 发表于 2012-5-31 15:30:50 | 显示全部楼层
谢谢关注
总体需求是自动输入用户名和密码,点登录按钮
winkill语句是关掉这个窗口,准备下一次的登陆,


单人的可以,多人登录的话,系统只显示某个人的登录信息,其余人无法显示,是不是需要清理cookie啊
网页的源码是这个
function imageSubmit(elm)
                        {
                                  
                                var t = document.IDPLogin.Ecom_User_ID;
                                t.value = trim(t.value);
                                if(t.value == "")
                                {
                                        alert("请输入用户名!");
                                        t.focus();
                                        return false;
                                }
   
                                t = document.IDPLogin.Ecom_Password;
                                t.value = trim(t.value);
                                if(t.value == "")
                                {
                                   alert("请输入密码!");
                                    t.focus();
                                    return false;
                                }
                                if (i == 0)
                                  {
                                     i = 1;
                                     document.IDPLogin.submit();
                                  }
                                  return false;
                        }

function go(elm)
{
   if(event.keyCode == 13 )
   {
      var t = event.srcElement.name;
      imageSubmit(elm);
        }
}


function clickReset()
{
        document.IDPLogin.Ecom_User_ID.value="";
        document.IDPLogin.Ecom_Password.value="";
        document.IDPLogin.Ecom_User_ID.focus();
}
 楼主| 发表于 2012-5-31 15:33:24 | 显示全部楼层
btw,
如果是手工登录,
输入这段http://170.117.131.15/mh/index.jsp网址后

系统就直接登录了,似乎自动保存的用户名和密码

这对单人手工来讲比较方便,但用程序模拟就有点问题,当然这问题是对我这个菜鸟来说的
发表于 2012-5-31 15:47:32 | 显示全部楼层
本帖最后由 shqf 于 2012-5-31 15:53 编辑

唉,不好意思,还是有点不明白。你要模拟登录,你就要说清楚登录的那个页面地址,内网的话要网页全部源码,以及要按哪个按钮。
还是你会模拟登录,只是出现了其余人无法显示的问题无法解决,因而需要帮忙?
 楼主| 发表于 2012-5-31 17:37:28 | 显示全部楼层
单人模拟登录没问题

多人的话,只能登一个人上去,ie可能是自动保存了什么东西,导致autoit脚本失效
 楼主| 发表于 2012-5-31 17:38:34 | 显示全部楼层
公司内网和外网是分开的,明天到单位拷贝一下网页源代码
发表于 2012-5-31 18:07:22 | 显示全部楼层
你是想多用户同时登陆还是想顺序的登录?
同时的话的没研究过,估计得开沙盘
顺序的话要在第一个登录完成以后退出登录,再进行下一步的操作
 楼主| 发表于 2012-5-31 18:45:22 | 显示全部楼层
是想每个用户顺序的登录
发表于 2012-5-31 19:11:29 | 显示全部楼层
也可以检测是否已有用户登录,若有,则退出已登录用户再重新登录!
 楼主| 发表于 2012-5-31 20:53:57 | 显示全部楼层
可能是因为我没有退出登录的原因,明天白天到单位后找找是否有“退出”链接
 楼主| 发表于 2012-6-1 15:31:00 | 显示全部楼层
找到了这个注销的代码
请教该怎么写,退出脚本
<a href="http://nfr.com.cn:7777/pls/osso/osso.ww_app_admin.ls_logout?p_done_url=http://110.125.135.15"><font size="2">注销</font></a>
            </ul>
发表于 2012-6-1 16:17:34 | 显示全部楼层
试试 _IELinkClickByText($oIE, "注销")
发表于 2012-6-1 21:18:35 | 显示全部楼层
先退出再登录。
 楼主| 发表于 2012-6-2 08:48:42 | 显示全部楼层
试试 _IELinkClickByText($oIE, "注销")
shqf 发表于 2012-6-1 16:17



    这个语句可以注销,谢了

但再次登陆后,依然是第一个人的账号,

这个bs系统貌似只能一个人登陆,无法多人顺序登?

手工也出现这种情况,但多试几次后,有时手工可以完成多人顺序登录
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-15 00:51 , Processed in 0.089082 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表