· 8 years ago · Dec 24, 2017, 11:28 AM
1#! /usr/bin/env ruby
2require 'rubygems'
3require 'firewatir'
4require 'rubygems'
5require 'pony'
6
7
8def mail_me(subject, body)
9 Pony.mail(:to => '-------------@gmail.com', :via => :smtp,
10 :body=>body, :subject=>subject,
11 :via_options => {
12 :address => 'smtp.gmail.com',
13 :port => '587',
14 :enable_starttls_auto => true,
15 :user_name => '---------@gmail.com',
16 :password => '---------',
17 :authentication => :plain, # :plain, :login, :cram_md5, no auth by default
18 :domain => "localhost.localdomain" # the HELO domain provided by the client to the server
19 })
20end
21
22def wait_load
23 sleep 1 until @browser.status == "Done"
24end
25
26def login
27 @browser.text_field(:name=>"UserName").set "--------"
28 @browser.text_field(:name=>"Password").set "--------"
29 @browser.button(:name=>"LoginUser").click
30end
31
32
33
34def autoregister(wait=0)
35 @browser.close if @browser.html rescue nil
36 sleep wait/2
37 @browser = Watir::Browser.new
38 sleep wait/2
39 # go to login page
40 @browser.goto("------------------")
41 wait_load
42 login
43 wait_load
44 # go to registration page
45 @browser.goto("----------------------------------")
46 wait_load
47 @browser.button(:name, "-----------------------").click
48 wait_load
49
50 @browser.button(:name, "--------------------------").click # next button
51 wait_load
52
53 if !@browser.text.include? "------------" # error
54 autoregister 240
55 elsif @browser.text.include? "Class status is full"
56 autoregister 600
57 else
58 # class is open?
59 mail_me "class maybe open!", @browser.div(:class, "----------").text
60 end
61end
62
63autoregister