Canvas 自动化谷歌足球2012
我正在尝试自动化,只是为了好玩。我没有任何问题 足球的问题在于,它对Canvas 自动化谷歌足球2012,canvas,selenium,watir,watir-webdriver,browser-automation,Canvas,Selenium,Watir,Watir Webdriver,Browser Automation,我正在尝试自动化,只是为了好玩。我没有任何问题 足球的问题在于,它对左和右没有反应,但空格效果很好 这是整个脚本: puts "Go to game." require "bundler/setup" require "watir-webdriver" browser = Watir::Browser.new :chrome browser.goto "https://www.google.com/doodles/soccer-2012" sleep 1 puts "Go!" browser.
左
和右
没有反应,但空格
效果很好
这是整个脚本:
puts "Go to game."
require "bundler/setup"
require "watir-webdriver"
browser = Watir::Browser.new :chrome
browser.goto "https://www.google.com/doodles/soccer-2012"
sleep 1
puts "Go!"
browser.div(id: "hplogo").frame.div.click
sleep 1
puts "Left!"
browser.send_keys :left
sleep 1
puts "Rigth!"
browser.send_keys :right
sleep 1
puts "Space!"
browser.send_keys :space
您可以在中查看足球和其他游戏的代码
有人知道如何让左
和右
工作吗
sleep 3
puts "Left!"
browser.send_keys :left
您发送左右键的速度太快。在动画完成之前,动画似乎不会检测到输入 如果你多次按箭头键,守门员会移动一点:
100.times{browser.send_keys :left}
这让我觉得你需要知道如何按住箭头键,而不是仅仅点击它。不幸的是,我找不到按住键的方法(SeleniumWebDriver ActionBuilder的按键似乎只允许控制键)
如果你同意不使用键盘,守门员似乎对鼠标反应良好:
def move(browser, direction)
el = browser.driver.find_element(:id, 'hplogo')
case direction
when :start
browser.driver.action.move_to(el).perform
when :left
browser.driver.action.move_by(-1, 0).perform
when :left_fast
browser.driver.action.move_by(-5, 0).perform
when :right
browser.driver.action.move_by(1, 0).perform
when :right_fast
browser.driver.action.move_by(5, 0).perform
when :jump
browser.send_keys :space
end
end
puts "Go to game."
require "watir-webdriver"
browser = Watir::Browser.new :chrome
browser.goto "https://www.google.com/doodles/soccer-2012"
sleep 1
puts "Go!"
browser.div(id: "hplogo").frame.div.click
move(browser, :start) #Centre mouse
sleep 1
puts "Left!"
80.times{move(browser, :left)}
sleep 1
puts "Right!"
10.times{move(browser, :right_fast)}
sleep 1
puts "Space!"
move(browser, :jump)
我认为这不是问题所在。我在等待10-20秒后尝试从IRB向左/向右发送,但没有成功。当你增加睡眠时,向左/向右发送对你有用吗?是的,它有用。。。当我穿上它时,1号不起作用,3号起作用/不,还是不适合我。您能告诉我您的ruby、selenium webdriver、watir webdriver和chromedriver版本吗?(我有所有最新的,在Windows7上。)它似乎是偶然的,因为它工作后又回到了它,但它并不总是工作。是的,Ubuntu 12.04、ruby 1.9.3p194、最新版本的watir webdriver 0.6.1和selenium的2.25.0。Chrome驱动程序是64位linux的最新版本