moweixian 发表于 2012-4-15 21:31:31

为什么用描述性编程登录淘宝报“请输入密码”,而用录制的方式回放就可以登录成功?

问题:
1.用录制回访的方式可以登陆淘宝网成功,不会报“请输入您的密码”。
Browser("淘宝网 - 淘!我喜欢").Page("淘宝网 - 淘!我喜欢").Link("登录").Click
Browser("淘宝网 - 淘!我喜欢").Page("淘宝网 - 淘我喜欢!").WebEdit("TPL_username").Set "xxxxxxxxx"
'Browser("淘宝网 - 淘!我喜欢").Page("淘宝网 - 淘我喜欢!").WinObject("ATL:Edit").Click 23,7
'Browser("淘宝网 - 淘!我喜欢").Page("淘宝网 - 淘我喜欢!").WebButton("登录").Click
Browser("淘宝网 - 淘!我喜欢").Page("淘宝网 - 淘我喜欢!").WebEdit("TPL_password").SetSecure "yyyyyyyyyy"
Print "输入的密码为:" & Browser("淘宝网 - 淘!我喜欢").Page("淘宝网 - 淘我喜欢!").WebEdit("TPL_password").GetROProperty("value")
Browser("淘宝网 - 淘!我喜欢").Page("淘宝网 - 淘我喜欢!").WebButton("登录").Click

2.奇怪的是,为什么用纯描述性编程语句登录或在录制的脚本中加入一些描述性编程语句,就登录不了,报“请输入您的密码”,(如下面红色的语句2.1,2.2,2.3解除掉注释回放就一定会报请输入您的密码),用Browser("淘宝网 - 淘!我喜欢").Page("淘宝网 - 淘我喜欢!").WebEdit("TPL_password").GetROProperty("value")可以得到输入的密码呀,为什么会报错呢?你各位高手帮小弟解答一下,不胜感激!!!
2.1. 'Browser("title:=淘宝网.*").Page("title:=淘宝网.*").Sync
2.2. 'Browser("淘宝网 - 淘!我喜欢").Page("淘宝网 - 淘!我喜欢").Sync
2.3. 'If Browser("title:=淘宝网.*").Page("title:=淘宝网.*").WebElement("outertext:=亲,欢迎来淘宝!请登录免费注册").Exist(10) Then
2.4. If Browser("title:=淘宝网.*").Page("title:=淘宝网.*").Exist(10) Then
2.5.   Browser("淘宝网 - 淘!我喜欢").Page("淘宝网 - 淘!我喜欢").Link("登录").Click
2.6.   Browser("淘宝网 - 淘!我喜欢").Page("淘宝网 - 淘我喜欢!").WebEdit("TPL_username").Set "xxxxxxxxxx"
2.7.   Browser("淘宝网 - 淘!我喜欢").Page("淘宝网 - 淘我喜欢!").WebEdit("TPL_password").SetSecure "yyyyyyyyyy"
2.8.   Browser("淘宝网 - 淘!我喜欢").Page("淘宝网 - 淘我喜欢!").WebButton("登录").Click
2.9. End If

加上描述性编程登录淘宝报错截图:

fanjianmin 发表于 2012-4-16 10:56:52

描述性编程时尽量把没用的一些页面显示的信息去掉,直接定位输入框等,我个人觉得应该是页面同步时产生的错误

moweixian 发表于 2012-4-16 21:29:21

回复 2# fanjianmin

如果说是页面同步的问题,那么注释掉2.1与2.2的页面同步语句,取消2.3的判断注释,那么也会报“请输入您的密码”,登录不成功呢?我觉得问题应该不是页面同步的问题,说不出是哪的问题。

2.1. 'Browser("title:=淘宝网.*").Page("title:=淘宝网.*").Sync
2.2. 'Browser("淘宝网 - 淘!我喜欢").Page("淘宝网 - 淘!我喜欢").Sync
2.3. If Browser("title:=淘宝网.*").Page("title:=淘宝网.*").WebElement("outertext:=亲,欢迎来淘宝!请登录免费注册").Exist(10) Then

moweixian 发表于 2012-4-18 23:14:58

请问有人知道怎么回事吗?求解,多谢!!!

geek 发表于 2012-4-19 11:42:27

可以不用"安全控件登录"这样就能识别到输入密码的控件.要卢能识别到该控件就得找到相应的插件才行!

geek 发表于 2012-4-19 12:01:12

Browser("name:=淘宝网 - 淘我喜欢!").Page("title:=淘宝网 - 淘我喜欢!").WebEdit("name:=TPL_username").Set "XXXXXXXXXX"                ''用户名
Browser("name:=淘宝网 - 淘我喜欢!").Page("title:=淘宝网 - 淘我喜欢!").WebCheckBox("html id:=J_SafeLoginCheck").Set "OFF"                ''取消使用控件登录
Browser("name:=淘宝网 - 淘我喜欢!").Page("title:=淘宝网 - 淘我喜欢!").WebEdit("name:=TPL_password").SetSecure "XXXXXXXXXXXXX"                        ''密码
''获取登录按钮
Set webbut=Description.Create()
webbut("name").value="登录"
set webbuts=Browser("name:=淘宝网 - 淘我喜欢!").Page("title:=淘宝网 - 淘我喜欢!").ChildObjects(webbut)
        For i=1 to webbuts.Count()
                If Instr(1,webbuts(i-1).GetROProperty("outerhtml"),"class=J_Submit tabIndex=5 type=submit")<>0 Then
                        webbuts(i-1).click
                        Exit for
                End If
        Next

试试我这种方法

026300 发表于 2012-4-19 12:43:54

淘宝页面有许多看不见的控件

moweixian 发表于 2012-4-22 17:34:22

回复 7# geek

谢谢这位哥们的代码,但为什么加上取消使用控件登录的代码(如下第1行代码)后,运行到输入密码时(第2行的代码)就会报“参数不正确“呢?,注释掉取消使用控件登录的代码(如下第1行代码)后就不会报”参数不正确“呢?怎么这么奇怪?
1 Browser("name:=淘宝网 - 淘我喜欢!").Page("title:=淘宝网 - 淘我喜欢!").WebCheckBox("html id:=J_SafeLoginCheck").Set "OFF"                ''取消使用控件登录
2 Browser("name:=淘宝网 - 淘我喜欢!").Page("title:=淘宝网 - 淘我喜欢!").WebEdit("name:=TPL_password").SetSecure "XXXXXXXXXXXXX"                        ''密码

geek 发表于 2012-4-23 15:17:06

这个应该跟你使用的浏览器和我的浏览器不同,使用的控件有可用不同的原因.我用的是Win 7系统 IE8浏览器.QTP 10.0 你再找找因原呢.
页: [1]
查看完整版本: 为什么用描述性编程登录淘宝报“请输入密码”,而用录制的方式回放就可以登录成功?