z761003 发表于 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#给的两个方法都可行,衷心感谢

z761003 发表于 2012-6-28 19:01:07

没一个人回复怎么就沉底了,顶起来

bdancerlc 发表于 2012-6-28 20:10:28

没网址 如何测试? 你这样搞,再怎么顶也白搭...

z761003 发表于 2012-6-28 20:30:02

回复 3# bdancerlc


    我把网址还有我已经写的代码都贴出来了,特请教下。

suiyefeng 发表于 2012-6-28 20:44:43

_IENavigate($IE, "javascript:OnBtnLogin();", 0)
试试直接执行js

bdancerlc 发表于 2012-6-28 21:29:40

回复 4# z761003


    我这边 网页打不开,我去 ..试了好多次了 ! 爱莫能助了!..看下 5# 方法 好不好用!..

z761003 发表于 2012-6-28 21:46:11

5#方法能点击那个按钮,可又出了个新问题,_IENavigate($IE, "javascript:OnBtnLogin();", 0)

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

z761003 发表于 2012-6-28 21:48:34

本帖最后由 z761003 于 2012-6-28 22:11 编辑

回复 5# suiyefeng


    首先很感谢你的指教,我弱弱地还想问下,你的方法能点击那个按钮,可这条命令会让页面跳出个楼上所示的窗口,而且这个窗口还无法用send("{enter}")处理,因为代码暂停执行了。请问有没办法不要出现这个窗呢{:face (332):}

suiyefeng 发表于 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


试试这个吧

tommydone 发表于 2012-7-22 21:23:04

好啊。。。。这位大哥真热心
页: [1]
查看完整版本: [已解决]请教各位高手一个模拟点击的问题