ruby webdriver:如何在脚本运行时捕获按键?
发布时间:2020-12-16 21:01:19 所属栏目:百科 来源:网络整理
导读:我正在使用 ruby中的WebDriver打开一组URL – 一种幻灯片,在“幻灯片”(页面)之间间隔3秒.查看发生这种情况的人可能会单击Space,我需要将该页面URL保存到另一个文件中.我怎么能处理这些中断 – 抓住Space的事件? require "watir-webdriver"urls = [...list
我正在使用
ruby中的WebDriver打开一组URL – 一种幻灯片,在“幻灯片”(页面)之间间隔3秒.查看发生这种情况的人可能会单击Space,我需要将该页面URL保存到另一个文件中.我怎么能处理这些中断 – 抓住Space的事件?
require "watir-webdriver" urls = [...list of URLs here...] saved = [] b = Watir::Browser.new urls.each do |url| b.goto url sleep(3) # ...what should I put here to handle Space pressed? if space_pressed saved << b.url end end 解决方法
看起来您的问题可以通过STDIN.getch解决.
如果使用以下脚本创建文件,然后在命令提示符下运行它(例如“ruby script.rb”),脚本将: >导航到网址. 脚本: require "watir-webdriver" require 'io/console' require 'timeout' urls = ['www.google.ca','www.yahoo.ca','www.gmail.com'] saved = [] b = Watir::Browser.new urls.each do |url| b.goto url # Give user 10 seconds to provide input puts "Capture url '#{url}'?" $stdout.flush input = Timeout::timeout(10) { input = STDIN.getch } rescue '' # If the user's input is a space,save the url if input == ' ' saved << b.url end end p saved 几个笔记: >请注意,输入需要是命令提示符而不是浏览器.>如果用户在分配的超时之前按下某个键,脚本将立即进入下一个URL. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |