0

我正在尝试自动化网络抓取,同时使用selenium-webdriverAppleScript 的 和 ruby​​ 端口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")

似乎是导致问题的原因。

在单独的文件中执行时,两者都可以正常工作。

硒网络驱动程序:

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 补丁级别352) 操作系统:Mac OSX 10.6.8 64 位

4

2 回答 2

0

很抱歉没有直接解决您的问题,但作为一种解决方法,您可以查看 Watir:http ://watir.com/ 。我在 Mac OSX 10.6.8 上的 Firefox 上成功使用了它。类似于以下内容:

require "rubygems"
require "watir-webdriver"

b = Watir::Browser.new :firefox
b.goto("http://google.com")
于 2011-07-25T05:14:18.803 回答
0

看起来 ruby​​ 的版本导致了这个问题。1.8.7 是 1.8 和 1.9 之间的桥梁,显然不推荐使用。有许多关于 ruby​​ 1.8.7 在使用多种不同的 gem 时导致分段错误的报告。升级到最新版本 (1.9.2) 解决了这个问题!

于 2011-07-26T16:28:10.257 回答