2012-07-05 83 views
4

我想用Selenium RC打开Safari浏览器。 但是,Safari实例已创建,并处于请求连接模式 (SafariDriver请求ws:// localhost:3078/wd处的连接)。Selenim RC与Safari浏览器问题 - Selenium :: WebDriver :: Error :: UnknownError:执行器尚未启动

require "selenium-webdriver" 
caps = Selenium::WebDriver::Remote::Capabilities.safari 
browser = Selenium::WebDriver.for :remote, :url=>"http://localhost:4444/wd/hub", :desired_capabilities=>caps 

上面的东西挂了电话,失败 - 硒:: webdriver的::错误::不明错误:执行人还没有开始呢,从[远程服务器] com.google(java.lang.IllegalStateException) 。 common.base.Preconditions(Preconditions.java):145:在checkState' from [remote server] org.openqa.selenium.safari.SafariDriverCommandExecutor(SafariDriverCommandExecutor.java):123:in执行' from [远程服务器] org.openqa.selenium.remote.RemoteWebDriver(RemoteWebDriver.java):432:在execute' from [remote server] org.openqa.selenium.remote.RemoteWebDriver(RemoteWebDriver.java):140:in startSession' from [remote server] org.openqa.selenium.remote.RemoteWebDriver(RemoteWebDriver.java):95:在<init>' from [remote server] org.openqa.selenium.safari.SafariDriver(SafariDriver.java):33:in' 从[远程服务器] sun.reflect.NativeConstructorAccessorImpl(NativeConstructorAccessorIm pl.java): - 2:在newInstance0' from [remote server] sun.reflect.NativeConstructorAccessorImpl(NativeConstructorAccessorImpl.java):39:in的newInstance ' 从[远程服务器] sun.reflect.DelegatingConstructorAccessorImpl(DelegatingConstructorAccessorImpl.java):27:在newInstance' from [remote server] java.lang.reflect.Constructor(Constructor.java):513:in的newInstance' 从[远程服务器] java.lang.Class中(Class.java ):355:在newInstance0' from [remote server] java.lang.Class(Class.java):308:in的newInstance ' 从[远程服务器] org.openqa.selenium.remote.server.DefaultDriverFactory(DefaultDriverFactory.java):61:在callConstructor' from [remote server] org.openqa.selenium.remote.server.DefaultDriverFactory(DefaultDriverFactory.java):52:in的newInstance' 从[远程服务器] org.openqa.selenium.remote .server.DefaultSession $ BrowserCreator(DefaultSession.java):197:call' from [remote server] org.openqa.selenium.remote.server.DefaultSession$BrowserCreator(DefaultSession.java):1:in调用' ... 4级... from [remote server] java.util.concurrent.ThreadPoolExecutor $ Worker(ThreadPoolExecutor.java):908:在run' from [remote server] java.lang.Thread(Thread.java):680:in运行' 从/Users/demo/.rvm/gems/ruby-1.9.2-p180/gems/selenium-webdriver-2.24.0/lib/selenium/webdriver/remote/response.rb:52:in assert_ok' from /Users/demo/.rvm/gems/ruby-1.9.2-p180/gems/selenium-webdriver-2.24.0/lib/selenium/webdriver/remote/response.rb:15:in初始化” 从/用户/演示/ .rvm /宝石/红宝石1.9.2-P180 /宝石/硒的webdriver-2.24.0/LIB /硒/ webdriver的/远程/ HTTP/common.rb:59:在new' from /Users/demo/.rvm/gems/ruby-1.9.2-p180/gems/selenium-webdriver-2.24.0/lib/selenium/webdriver/remote/http/common.rb:59:in create_response” 从/用户/演示/ .rvm /宝石/红宝石1.9.2-P180 /宝石/硒的webdriver-2.24.0/LIB /硒/ webdriver的/远程/ HTTP/default.rb:59:在request' from /Users/demo/.rvm/gems/ruby-1.9.2-p180/gems/selenium-webdriver-2.24.0/lib/selenium/webdriver/remote/http/common.rb:40:in呼叫” 从/用户/演示/ .rvm /宝石/红宝石1.9.2-P180 /宝石/硒的webdriver-2.24.0/LIB /硒/ webdriver的/远程/ bridge.rb:598:在raw_execute' from /Users/demo/.rvm/gems/ruby-1.9.2-p180/gems/selenium-webdriver-2.24.0/lib/selenium/webdriver/remote/bridge.rb:92:in建立事务” 从/用户/演示/ .rvm /宝石/红宝石1.9.2-P180 /宝石/硒的webdriver-2.24.0/LIB /硒/ webdriver的/远程/ bridge.rb:68:在initialize' from /Users/demo/.rvm/gems/ruby-1.9.2-p180/gems/selenium-webdriver-2.24.0/lib/selenium/webdriver/common/driver.rb:33:in新” 从/用户/演示/ .rvm /宝石/红宝石-1.9.2-P180 /宝石/硒的webdriver-2.24.0/LIB /硒/ webdriver的/普通/ driver.rb:33:for' from /Users/demo/.rvm/gems/ruby-1.9.2-p180/gems/selenium-webdriver-2.24.0/lib/selenium/webdriver.rb:65:in关于” 从(IRB):7

+0

我有看起来像是同样的问题。您是否按照http://code.google.com/p/selenium/wiki/SafariDriver上的说明操作? – mdgreenfield 2012-08-08 20:17:54

+0

对于我锁定版本的gem libwebsocket到0.1.3解决了这个问题。希望这可以帮助你。 – Cthulhu 2012-08-18 17:21:28

回答

0

我一直运行到从Ruby使用Selenium Webdriver时出现这个问题。我解决了它几次,但错误又回来了。于是我写了rspec测试,在Windows上由jRuby加载,并用Java运行Selenium调用。 Safari现在工作。

相关问题