Проблемы с ошибками сегментации (selenium-webdriver + rb-appscript) - PullRequest
0 голосов
/ 22 июля 2011

Я пытаюсь автоматизировать webscraping, используя как selenium-webdriver, так и рубиновый порт AppleScript 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")

Кажется, что причиной проблемы.

При выполнении в отдельных файлах два прекрасно работают.

selenium-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, поэтому не совсем уверен, что является причиной проблемы.

Версия Ruby: 1.8.7 (2011-06-30 patch level352) ОС: Mac OSX 10.6.864-разрядная

Ответы [ 2 ]

0 голосов
/ 26 июля 2011

Похоже, что версия ruby ​​была причиной проблемы.1.8.7 - это мост между 1,8 и 1,9, и, очевидно, его не рекомендуется использовать.Существует множество сообщений о том, что ruby ​​1.8.7 вызывает ошибки сегментации при использовании множества различных драгоценных камней.Обновление до последней версии (1.9.2) устранило проблему!

0 голосов
/ 25 июля 2011

Извиняюсь за то, что не обратился к вашему вопросу напрямую, но в качестве обходного пути вы можете проверить Watir: http://watir.com/. Я успешно использую его с Firefox на Mac OSX 10.6.8.Что-то вроде:

require "rubygems"
require "watir-webdriver"

b = Watir::Browser.new :firefox
b.goto("http://google.com")
...