zoukankan      html  css  js  c++  java
  • waitr自动化测试

    Watir利用autoit处理JavaScript Pop Ups

    2009年9月23日

    问题:
    最近朋友做了一个投票活动,给每个活动参与者加200积分,他使用的discuz论坛,看他一个一个加,我就是用Watir写了几行代码自动提交,无奈的 是提交的时候弹出的confirm确认框,要挨个挨个点击确定,很不方便,最终在OpenQA上找到了解决方案,利用autoit可以解决 confirm、prompt、alert等弹出框问题。
    代码:

    1. require 'watir'
    2. require 'win32ole'
    3.  
    4. def check_for_popups(title="Window Internet Explorer", button="OK")
    5.     popup=Thread.new {
    6.         autoit=WIN32OLE.new('AutoItX3.Control')
    7.         ret=autoit.WinWait(title,"",30)
    8.         if (ret==1)
    9.             puts "There is popup."
    10.             autoit.WinActivate(title)
    11.             button.downcase!
    12.             if button.eql?("ok") || button.eql?("yes") || button.eql?("continue")
    13.                 autoit.Send("{Enter}")
    14.             else
    15.                 autoit.Send("{tab}")
    16.                 autoit.Send("{Enter}")
    17.             end
    18.         elsif (ret==0)
    19.             puts "No popup, please check your code."
    20.         end
    21.     }
    22.     at_exit { Thread.kill(popup) }
    23. end
    24.  
    25.  
    26. ie = Watir::IE.new
    27. ie.speed = :fast
    28. username = 'username'
    29. password = 'password'
    30. nones = ''
    31. filename = 'username.txt'
    32.  
    33. ie.goto('http://www.eetop.cn/bbs/logging.php?action=login')
    34. if    ie.contains_text('用户名')
    35.     ie.text_field(:name, "username").set(username)
    36.     ie.text_field(:name, "password").set(password)
    37.     ie.button(:name, "loginsubmit").click
    38. end
    39.  
    40. file = File.new(filename,'r');
    41. while line = file.gets
    42.     line.to_s.strip!
    43.     if line!=nones
    44.         puts line
    45.         ie.goto('http://www.eetop.cn/bbs/memcp.php?action=credits')
    46.         ie.text_field(:name, "password").set(password)
    47.         ie.text_field(:name, "to").set(line.to_s)
    48.         ie.text_field(:name, "amount").set('200')
    49.         ie.text_field(:name, "transfermessage").set('积分奖励')
    50.         ie.button(:name, "creditssubmit").click_no_wait
    51.         check_for_popups("Message from webpage", "OK")
    52.     end
    53. end
    54.  
    55. ie.close

    参考:
    http://wiki.openqa.org/display/WTR/JavaScript+Pop+Ups

  • 相关阅读:
    rac node1节点侦听地址为127.0.0.1问题
    rac crs节点故障(未解决)
    杂牌设备网络接入引起交换机引起端口翻转的故障
    Impdp导出前准备工作以及主要命令
    查询dba_tables视图tablespaces_name为空的问题
    Expdp导出前准备工作以及主要命令
    带参数的方法解析
    类的无参方法,注释
    类和对象的解析
    二重循环的解析
  • 原文地址:https://www.cnblogs.com/lexus/p/1917943.html
Copyright © 2011-2022 走看看