Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Canvas 自动化谷歌足球2012_Canvas_Selenium_Watir_Watir Webdriver_Browser Automation - Fatal编程技术网

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的最新版本