我正在尝试自动化webscraping,同时使用AppleScript selenium-webdriver
的{{1}}和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
似乎导致了这个问题。
在单独的文件中执行时,两者工作正常。
硒的webdriver:
driver = Selenium::WebDriver.for(:firefox, :profile => "default")
RB-appscript:
require 'rubygems'
require 'selenium-webdriver'
driver = Selenium::WebDriver.for(:firefox, :profile => "default")
driver.navigate.to "http://google.com"
driver.quit
知道问题是什么吗?我是红宝石的新手,所以我不确定是什么导致了这个问题。
Ruby版本:1.8.7(2011-06-30补丁级别352) 操作系统:Mac OSX 10.6.8 64位
答案 0 :(得分: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")
答案 1 :(得分:0)
看起来ruby的版本导致了这个问题。 1.8.7是1.8和1.9之间的桥梁,不建议明显使用。有许多关于ruby 1.8.7的报告在使用大量不同的宝石时会导致分段错误。升级到最新版本(1.9.2)解决了问题!