Skip to content

Instantly share code, notes, and snippets.

@kentrino
Created July 27, 2015 21:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kentrino/9d8c373626ad673d36b9 to your computer and use it in GitHub Desktop.
Save kentrino/9d8c373626ad673d36b9 to your computer and use it in GitHub Desktop.
=begin
* 使い方
gem install selenium-webdriver
wget http://chromedriver.storage.googleapis.com/2.14/chromedriver_mac32.zip
unzip chromedriver_mac32.zip
mv chromedriver /usr/local/bin/
(sudo mv chromedriver /usr/bin/)
=end
require 'io/console'
require "selenium-webdriver"
$before = 0
def print_score(k,m)
out = "kill:#{k}, miss:#{m}"
$before = out.length
print(out)
$before.times{
print("\b")
}
end
print("[q] quit\n")
Thread.new {
while c = STDIN.getch
if c == "q"
print("\n")
Kernel.exit
end
end
}
begin
driver = Selenium::WebDriver.for :chrome
rescue
driver = Selenium::WebDriver.for :firefox
end
driver.navigate.to "http://www.dragonquest.jp/heroes/slime/index.html"
k = 0
m = 0
while true
begin
ids = ['boxTop','boxLeft','boxRight']
ids.each{ |v|
while !driver.find_element(:id, v).displayed?
sleep(1)
end
slime_box = driver.find_element(:id, v)
slime_lines = slime_box.find_elements(:tag_name, 'ul')
slime_lines.each{ |slime_line|
slimes = slime_line.find_elements(:tag_name, 'li')
slimes.each{ |slime|
slime.click
print_score(k,m)
while true
if slime.attribute('class') == 'after'
k += 1
break
elsif slime.attribute('class') == 'escape'
break
else
m += 1
slime.click
end
print_score(k,m)
end
}
}
}
while !driver.find_element(:class,'btn_more').find_element(:tag_name,'a').displayed?
sleep(1)
end
#btn_more = driver.find_element(:class,'btn_more').find_element(:tag_name,'a').click
driver.navigate.refresh
rescue
driver.navigate.refresh
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment