找回密码
 加入
搜索
查看: 4182|回复: 9

[IE类操作] [已解决]请教各位高手一个模拟点击的问题

  [复制链接]
发表于 2012-6-28 14:48:19 | 显示全部楼层 |阅读模式
本帖最后由 z761003 于 2012-6-29 08:00 编辑

在论坛里翻一天了,自己也折腾很长时间了,就弄不出来,在此请教各位大侠

我想用后台模拟点击网页中的这个“登陆”按钮,网页中它的代码是:
<div class="button2" onMouseOver="this.style.background='url(bg2o.gif)'" onMouseOut="this.style.background='url(bg2.gif)'"><span class="confirm" onClick="javascript:OnBtnLogin()">登   陆</span></div>


用了类似 _IETagNameGetCollection()  _IEAction()等函数都点不到它,怎么办?因为我是隐藏打开IE窗口的,后台点击,实际并看不到网页,所以不要用MouseClick 这类函数。

网址是http://www.alicall.com/alicall.asp  我用如下语句先点击了设置,再填上帐号和密码,然后就想点那个“登陆”,就卡在这登陆上面了

我已经写好的代码是:

#include <GUIConstants.au3>
#include <Constants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <ButtonConstants.au3>
#include <GDIPlusEx.au3>
#include <Thread.au3>
#include <DateTimeConstants.au3>
#include <GuiListView.au3>
#include <String.au3>
#Include <Date.au3>
#Include <File.au3>
#include<ie.au3>

$IE=_iecreate("http://www.alicall.com/alicall.asp",0,1,1,1)                  ; 参数本来是0,0,1,1的,这里为了大家能看到窗口,我改成0,1,1,1
_IELoadWait($IE)
$button = _IEGetObjById ($IE, "fun3")
_IEAction($button,'click')

$cardno1=_IEGetObjById ($IE, "cardno1")
_IEFormElementSetValue ($cardno1, "139******")
$password1=_IEGetObjById ($IE, "password1")
_IEFormElementSetValue ($password1, "123456")


5#给的两个方法都可行,衷心感谢
 楼主| 发表于 2012-6-28 19:01:07 | 显示全部楼层
没一个人回复怎么就沉底了,顶起来
发表于 2012-6-28 20:10:28 | 显示全部楼层
没网址 如何测试? 你这样搞,再怎么顶也白搭...
 楼主| 发表于 2012-6-28 20:30:02 | 显示全部楼层
回复 3# bdancerlc


    我把网址还有我已经写的代码都贴出来了,特请教下。
发表于 2012-6-28 20:44:43 | 显示全部楼层
_IENavigate($IE, "javascript:OnBtnLogin();", 0)
试试直接执行js
发表于 2012-6-28 21:29:40 | 显示全部楼层
回复 4# z761003


    我这边 网页打不开,我去 ..  试了好多次了 ! 爱莫能助了!..看下 5# 方法 好不好用!..
 楼主| 发表于 2012-6-28 21:46:11 | 显示全部楼层
5#方法能点击那个按钮,可又出了个新问题,_IENavigate($IE, "javascript:OnBtnLogin();", 0)

这条命令会让页面跳出个个窗口,请问5#,能不能这条指令稍改下,不要出现这个窗可以做到吗

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2012-6-28 21:48:34 | 显示全部楼层
本帖最后由 z761003 于 2012-6-28 22:11 编辑

回复 5# suiyefeng


    首先很感谢你的指教,我弱弱地还想问下,你的方法能点击那个按钮,可这条命令会让页面跳出个楼上所示的窗口,而且这个窗口还无法用send("{enter}")处理,因为代码暂停执行了。请问有没办法不要出现这个窗呢
发表于 2012-6-28 22:53:12 | 显示全部楼层
$IE=_iecreate("http://www.alicall.com/alicall.asp", 0)                  ; 参数本来是0,0,1,1的,这里为了大家能看到窗口,我改成0,1,1,1
_IELoadWait($IE)
$button = _IEGetObjById ($IE, "fun3")
_IEAction($button,'click')

$cardno1=_IEGetObjById ($IE, "cardno1")
_IEFormElementSetValue ($cardno1, "139******")
$password1=_IEGetObjById ($IE, "password1")
_IEFormElementSetValue ($password1, "123456")

$oSpans =  _IETagNameGetCollection($IE, "span")

For $oSpan In $oSpans
        If StringInStr($oSpan.outertext, "登 陆") Then
                $oSpan.click
                ExitLoop
        EndIf
Next


试试这个吧

评分

参与人数 1贡献 +1 收起 理由
Windows8 + 1

查看全部评分

发表于 2012-7-22 21:23:04 | 显示全部楼层
好啊。。。。这位大哥真热心
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-6-12 03:43 , Processed in 0.093695 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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