- 论坛徽章:
- 0
|
问题解决情况:
使用了ocra打包ruby脚本。
1、首先代码去掉了循环读取info文件的死循环(while true)- # coding:utf-8
- require "watir"
- class HongBao
-
- def initialize(filename)
- @filename = filename
- @str="看不清"
- @str2="星座运势"
- end
-
- def getHongbao
- ie=Watir::IE.new
- # while true
- IO.foreach("#{@filename}") do |line|
- puts line
- arr=line.split(' ')
- name=arr[0]
- year=arr[1]
- month=arr[2]
- day=arr[3]
- ie.goto "http://hongbao.app.baidu.com/hongbao/inputname"
- ie.text_field(:name, "name").set(name)
- ie.select_list(:id, "select-year").select(year)
- ie.select_list(:id, "select-month").select(month)
- ie.select_list(:id, "select-day").select(day)
- ie.checkbox(:id, "check-1").set
- ie.text_field(:id, "captcha").clear
- #puts "checkSum:"
- #checkNum=gets
- #ie.text_field(:id, "captcha").set(checkNum)
- #ie.button(:id, "bn").click
- while ie.text.encode("utf-8","gbk").include? "#{@str}"
- print "Please input check number:"
- checkNum=gets
- ie.text_field(:name, "captcha").set(checkNum.encode("utf-8","gbk"))
- ie.button(:id, "bn").click
- sleep 1
- end
- sleep 1
- if not ie.text.encode("utf-8","gbk").include? "#{@str2}"
- puts "got it"
- exit 5
- end
- puts "Enter to continue... ..."
- gets
- end
- # end
- end
- end
- aHongBao = HongBao.new("info.txt")
- aHongBao.getHongbao
复制代码 2、然后把info.txt内容减少到1条
1,2 两步的原因是这段代码执行的时候有个需要输入验证码的地方,如果死循环或者info.txt数据条数太多,ocra打包的时候一直在循环里,或者info数据太多花费太长时间。
3、执行cora hongbao.rb。输入一次验证码。cora打包成功,得到可执行exe文件。
4、添加更多的数据到info.txt
仍然存在的问题:如果想保留while死循环,那么该怎么打包呢? |
|