用QTP脚本操作【腾讯QQ好友买卖】

本文介绍了一套基于QTP(Quick Test Professional)的好友买卖自动化脚本,通过具体实例展示了如何利用QTP进行网页自动化测试。该脚本实现了自动购买、折磨、安抚好友等功能,并详细解释了各部分代码的实现逻辑。

转自:http://www.51testing.com/html/93/n-130093.html

今日玩起了腾讯的好友买卖,操作特别繁琐,无聊之下就写了个脚本去做操作。

  相信想学习QTP的读者去做这套小小的脚本一定会有不小的收获。先丢个流程图给大家,脚本还没全部检查完,因为好友都被我折磨完了,PK完了~~~在9.5中已经大量使用了对象库,描述编程感觉已经很难立足。你可以不同意我的观点,但你不能不注意这个问题,哈哈。

  因为对象库中涉及到部分个人信息,所以就只贴出部分代码。在ACTION1 datatable中需要添加:

  index:0

  PK_index:0

  friend_name :可以多行,都是你首选要买的朋友,例如大强,小强

  同时,对象添加进去时候,腾讯也够折腾人的,区分他、她,所以大家需要对连接做个简单的正值表达式修改。对象库中的连接大部分都被参数化了,使用 INDEX属性与datatable中的index挂连接,通过修改datatable的index来确定那个药被点击到。例如折磨奴隶的连接等等。

  代码:

 

ContractedBlock.gif ExpandedBlockStart.gif Code
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'function Buy_Friend
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Public function Buy_Friend()
  
    
' List_count=browser("").Page("").Frame("Frame_2").Object.links.length
    Rowcount 
= DataTable.GetSheet("Action1").GetRowCount ()
    flag
=true
    curent_line
=0
    While  flag
     browser(
"").Page("").Frame("Frame").Link("我买得起的人").Click
     If browser(
"").Page("").Frame("Frame_2").Link("点击展开更多>>").Exist(0) Then
     browser(
"").Page("").Frame("Frame_2").Link("点击展开更多>>").click
     End If
     curent_line
=curent_line+1
     If   curent_line
=Rowcount  then
      flag 
=false
      browser(
"").Page("").Frame("Frame_4").WebRadioGroup("aid").Select "#0"
      browser(
"").Page("").Frame("Frame").Link("我要购买他").Click
       If  browser(
"").Page("").Frame("Frame_4").WebEdit("WebEdit").Exist(0) Then
       text
=browser("").Page("").Frame("Frame_4").WebElement("Friendname").GetROProperty("outertext")
       browser(
"").Page("").Frame("Frame_4").WebEdit("WebEdit").Set  text
       browser(
"").Page("").Frame("Frame_4").WebButton("买下他").Click
       flag
=false
       browser(
"").Page("").WebButton("").Click
                  
else
       browser(
"").Page("").WebButton("").Click
      end 
if
   end 
if
   datatable.SetCurrentRow(curent_line)
   If  browser(
"").Page("").Frame("Frame_2").Link("Friend_name").exist(0) Then    '如果存在datatable中就做点击操作
     browser("沙").Page("沙").Frame("Frame_2").Link("Friend_name").click
     browser("沙").Page("沙").Frame("Frame").Link("我要购买他").Click
                                               
'有四个情况,购买成功,购买次数多2,资金不够,正在打工,但只要有可以输入的框就说明可以买
       If  browser(
"").Page("").Frame("Frame_4").WebEdit("WebEdit").Exist(0) Then
       text
=browser("").Page("").Frame("Frame_4").WebElement("Friendname").GetROProperty("outertext")
       browser(
"").Page("").Frame("Frame_4").WebEdit("WebEdit").Set  text
       browser(
"").Page("").Frame("Frame_4").WebButton("买下他").Click
       flag
=false
       browser(
"").Page("").WebButton("").Click
                  
else
       browser(
"").Page("").WebButton("").Click
     end 
if
   End If
    Wend
End Function

 

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'function Sell_Friend
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Public function Sell_Friend()
    F_Count=Friend_Count()
 For i=0 to F_count-1
 datatable.Value("index","Action1")=i
 hold_time=browser("沙").Page("沙").Frame("Frame").WebElement("05-19 10:57").GetROProperty("outertext")
 If day(now)-day(hold_time)>=2Then

    browser("沙").Page("沙").Frame("Frame").Link("释放奴隶").Click
  If  browser("沙").Page("沙").Frame("Frame_4").WebButton("释放她").Exist(0) Then
   browser("沙").Page("沙").Frame("Frame_4").WebButton("释放她").Click
   browser("沙").Page("沙").WebButton("╳").Click
  End If
 End If
Next
   
End Function

 

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'function Labor    折磨奴隶
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Public 
function Labor()
      If browser(
"").Page("").Frame("Frame_4").WebRadioGroup("aid").Exist(0) Then
        cot
=  browser("").Page("").Frame("Frame_4").Object.getElementsByTagName("input").length
     browser(
"").Page("").Frame("Frame_4").WebRadioGroup("aid").Select "#"&cot-1
     browser(
"").Page("").Frame("Frame_4").WebButton("确定").Click
     browser(
"").Page("").WebButton("").Click
    
else
     browser(
"").Page("").WebButton("").Click
      End If

End Function


'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'function Appease   安抚奴隶
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Public function Appease()
     If  browser("沙").Page("沙").Frame("Frame_4").WebRadioGroup("aid").Exist(0) Then
        cot=  browser("沙").Page("沙").Frame("Frame_4").Object.getElementsByTagName("input").length
      browser("沙").Page("沙").Frame("Frame_4").WebRadioGroup("aid").Select "#"&cot-1
       browser("沙").Page("沙").Frame("Frame_4").WebButton("确定").Click
      browser("沙").Page("沙").WebButton("╳").Click
    else
      browser("沙").Page("沙").WebButton("╳").Click
    end if
End Function


'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'function PK
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Public 
function PK()
   browser(
"").Page("").Frame("Frame").Link("PK角斗场").Click
   flag
=true
   Page_PK_Index
=0   '页面上其他人的努力顺序
   PK_index=0                     
'奴隶PK的顺序
   PK_Friend_Count
=0     '选择PK主人(当PK数太少,就选择第2个PK主人)
   While flag
       datatable.Value("PK_index","Action1")=Page_PK_Index
       If  browser("沙").Page("沙").Frame("Frame").Link("派奴隶与她PK").Exist(0) Then
        browser("沙").Page("沙").Frame("Frame").Link("派奴隶与她PK").Click
       If  browser("沙").Page("沙").Frame("Frame_4").WebRadioGroup("aid").Exist(0) Then
         PK_Count=browser("沙").Page("沙").Frame("Frame_4").WebRadioGroup("aid").GetROProperty("items count")
         If  PK_index>PK_Count-1 Then
          flag=false
         else
          browser("沙").Page("沙").Frame("Frame_4").WebRadioGroup("aid").Select "#"&PK_index
          browser("沙").Page("沙").Frame("Frame_4").WebButton("确定").Click
          If  browser("沙").Page("沙").Frame("Frame_4").WebButton("关闭").exist(0) Then
            PK_index=PK_index+1 
            browser("沙").Page("沙").Frame("Frame_4").WebButton("关闭").click
          else
            browser("沙").Page("沙").Frame("Frame_4").WebButton("确定").Click
            browser("沙").Page("沙").Frame("Frame_4").WebButton("直接查看赛果").Click
            PK_index=PK_index+1 
            Page_PK_Index=Page_PK_Index+1
            browser("沙").Page("沙").WebButton("╳").Click
            
          End If
         end if
       else
          Page_PK_Index=Page_PK_Index+1
         browser("沙").Page("沙").WebButton("╳").Click
       End If
     else
      browser("沙").Page("沙").Frame("Frame").WebButton("PK其他好友奴隶").Click
      browser("沙").Page("沙").Frame("Frame_4").WebRadioGroup("aid").Select "#"&PK_Friend_Count
      browser("沙").Page("沙").Frame("Frame_4").WebButton("确定").Click
      Page_PK_Index=0 
      PK_Friend_Count=PK_Friend_Count+1
       End If
'   For i=0 to Pk_count-1
'    datatable.Value("PK_index","Action1")=i
'    browser("").Page("").Frame("Frame").Link("派奴隶与她PK").Click
'    browser("沙").Page("沙").Frame("Frame_4").WebRadioGroup("aid").Select "#"&i
'    browser("").Page("").Frame("Frame_4").WebButton("确定").Click
'    Page_PK_Index=0 
'   Next
   Wend

End Function

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'function Fawn      讨好主人
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Public function Fawn()
  browser("沙").Page("沙").Frame("Frame").Link("讨好主人").Click
    If  browser("沙").Page("沙").Frame("Frame_4").WebRadioGroup("aid").Exist(0) Then
    cot=  browser("沙").Page("沙").Frame("Frame_4").Object.getElementsByTagName("input").length
    browser("沙").Page("沙").Frame("Frame_4").WebRadioGroup("aid").Select "#"&cot-1
    browser("沙").Page("沙").Frame("Frame_4").WebButton("确定").Click
    browser("沙").Page("沙").WebButton("╳").Click
  else
    browser("沙").Page("沙").WebButton("╳").Click
 end if
End Function


'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'function Use_FateCar
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Public 
function Use_FateCar()
   browser(
"").Page("").Frame("Frame").Link("使用命运卡").Click
   browser(
"").Page("").WebButton("").Click
End Function


'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'function  Friend_Count
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Public function  Friend_Count()
 Dim Friend
 Set Friend=description.Create()
   Friend("html tag").value="A"
 Friend("text").value="折磨奴隶"
 Friend_Count=browser("沙").Page("沙").Frame("Frame").ChildObjects(Friend).count
End Function

 

Public function main()

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'如果朋友小过9个就去买朋友
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  
while   Friend_Count()<9
     Buy_Friend()
    wend

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'折磨奴隶  和安抚奴隶
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
     F_Count=Friend_Count()
  For  i=0 to F_Count-1
    datatable.SetCurrentRow(1)
    datatable.Value("index","Action1")=i
    browser("沙").Page("沙").Frame("Frame").Link("折磨奴隶").Click
                Labor
    browser("沙").Page("沙").Frame("Frame").Link("安抚奴隶").Click
    Appease
  Next
  Fawn
  Use_FateCar
  PK
  Sell_Friend
  while   Friend_Count()<9
     Buy_Friend()
    wend

End Function

main()

转载于:https://www.cnblogs.com/junzhongxu/archive/2009/05/25/1488638.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值