2013-03-16 86 views
0

我在實現簡單的屏幕抓取工具時遇到問題。 基本的腳本如下:Ruby中的簡單屏幕抓取器,Selenium Webdriver拋出錯誤

require 'selenium-webdriver' 

width = 1024 
height = 728 

@websites = Array.new 

file = open('websites.txt') 

file.each_line { |line| @websites.push line } 

@websites.each do |website| 
    d = Selenium::WebDriver.for :firefox 
    puts "Now going to:"+ " #{website}" 
    d.navigate.to website 
    d.execute_script %Q{ 
    window.resizeTo(#{width}, #{height}); 
    } 
    d.save_screenshot("#{website.gsub('http://', '')}"+".png") 
    d.quit 
    sleep 10 
end 

硒拋出異常:

ruby keepwatch.rb 
Now going to: http://www.example.com/ 
/Users/Big_Bird/.rvm/gems/ruby-1.9.2-p320/gems/selenium-webdriver-2.31.0/lib/selenium/webdriver/common/driver_extensions/takes_screenshot.rb:18:in `initialize': No such file or directory - www.example.com/ (Errno::ENOENT) 
.png 
    from /Users/Big_Bird/.rvm/gems/ruby-1.9.2-p320/gems/selenium-webdriver-2.31.0/lib/selenium/webdriver/common/driver_extensions/takes_screenshot.rb:18:in `open' 
    from /Users/Big_Bird/.rvm/gems/ruby-1.9.2-p320/gems/selenium-webdriver-2.31.0/lib/selenium/webdriver/common/driver_extensions/takes_screenshot.rb:18:in `save_screenshot' 
    from keepwatch.rb:29:in `block in <main>' 
    from keepwatch.rb:22:in `each' 
    from keepwatch.rb:22:in `<main>' 

我感謝所有幫助我能在這個問題上。

+0

你可以發佈websites.txt的樣本? – sunnyrjuneja 2013-03-16 08:19:53

回答

2

嘗試添加路徑到文件並從最後移除(www.example.com/)。如果這不起作用,請嘗試刪除文件名和擴展名之間的所有點。

例如 - d.save_screenshot( 「./ screenshot.png」)