2011-07-22 12 views
0

私はselenium-webdriverとAppleScript rb-appscriptのルビーポートの両方を使って、ウェブスクレイピングを自動化しようとしています。しかし、私がコードを実行しようとすると、私はセグメンテーションフォールトに走り続けます。セグメンテーションフォールト問題(selenium-webdriver + rb-appscript)

コード:

require 'rubygems' 
require 'appscript'; include Appscript 
require 'selenium-webdriver' 

# Open instance of Firefox 
driver = Selenium::WebDriver.for(:firefox, :profile => "default") 

# Open my webscraping extension 
app('Firefox').activate 
app("System Events").processes["firefox-bin"].menu_bars[1].menu_bar_items["Tool\ 
s"].menus["Tools"].menu_items["******"].click 

driver.navigate.to "http://google.com" 
driver.quit 

このライン:

driver = Selenium::WebDriver.for(:firefox, :profile => "default") 

が問題の原因であると思われます。

別々のファイルで実行されると、2つはうまく動作します。

セレンwebdriverを:

require 'rubygems' 
require 'selenium-webdriver' 

driver = Selenium::WebDriver.for(:firefox, :profile => "default") 
driver.navigate.to "http://google.com" 
driver.quit 

RB-appscript:

require 'rubygems' 
require 'rb-appscript'; include Appscript 

app('Firefox').activate 
app("System Events").processes["firefox-bin"].menu_bars[1].menu_bar_items["Tool\ 
s"].menus["Tools"].menu_items["******"].click 

問題が何であるか任意のアイデア?私はルビーで新しくなっているので、何が問題を引き起こしているのか正確にはわからない。

Rubyのバージョン:1.8.7(2011-06-30パッチlevel352) OS:直接あなたの質問に対処していないためマックOSX 10.6.8 64ビット

答えて

0

ルビーのバージョンが問題を引き起こしているように見えます。 1.8.7は1.8と1.9の間のブリッジであり、明らかに使用することは推奨されません。多数の異なる宝石を使用すると、ルビ1.8.7がセグメンテーションフォルトを引き起こすという報告が多数あります。最新バージョン(1.9.2)にアップグレードすると問題が解決しました。

0

謝罪、しかし、あなたは可能性の回避策として、 Watir:http://watir.com/をチェックしてください。私はMac OSX 10.6.8のFirefoxでうまく使用しています。

+0

私が知っている限り、Watirは、あなたが運転しているFirefoxプロファイルを設定して作成することはできません。セレンのwebdriverが必要とするものがあります。しかし、問題を考えて、感謝! – Kotsu

関連する問題