Ошибка Selenium RC неизвестный протокол: localhost - PullRequest
1 голос
/ 17 марта 2011

Я только начинаю использовать Selenium с Ruby on Rails 3, у меня мой код:

before(:all) do
  @verification_errors = []
  @selenium_driver = Selenium::Client::Driver.new \
    :host => "localhost",
    :port => 2195,
    :browser => "*firefox C:/Program Files (x86)/Mozilla Firefox/firefox.exe",
    :url => "localhost:3000",
    :timeout_in_second => 60

  @selenium_driver.start_new_browser_session
end

after(:all) do
  @selenium_driver.close_current_browser_session
  @verification_errors.should == []
end

it "should open the create new user page" do
  page.open "http://localhost:3000/"
  !page.is_text_present("translation missing").should be_false
  page.click "link=Register"
  page.wait_for_page_to_load "30000"
  !page.is_text_present("translation missing").should be_false
  page.is_text_present("New Account").should be_true
end

Но когда я пытаюсь их запустить, я получаю

11:02:29.118 INFO - Command request: getNewBrowserSession[*firefox C:/Program Files (x86)/Mozilla Firefox/firefox.exe, localhost:3000, , ] on session null
11:02:29.118 INFO - creating new remote session
11:02:29.119 INFO - Allocated session 5cbd2c60271b490ea90eccb193cb1d84 for localhost:3000, launching...
11:02:29.119 ERROR - Failed to start new browser session, shutdown browser and clear all session data
java.lang.RuntimeException: java.net.MalformedURLException: unknown protocol: localhost
    at org.openqa.selenium.net.Urls.toProtocolHostAndPort(Urls.java:32)
    at org.openqa.selenium.browserlaunchers.LauncherUtils.getDefaultRemoteSessionUrl(LauncherUtils.java:121)
    at org.openqa.selenium.server.browserlaunchers.FirefoxChromeLauncher.launchRemoteSession(FirefoxChromeLauncher.java:413)
    at org.openqa.selenium.server.browserlaunchers.FirefoxLauncher.launchRemoteSession(FirefoxLauncher.java:110)
    at org.openqa.selenium.server.BrowserSessionFactory.createNewRemoteSession(BrowserSessionFactory.java:373)
    at org.openqa.selenium.server.BrowserSessionFactory.getNewBrowserSession(BrowserSessionFactory.java:125)
    at org.openqa.selenium.server.BrowserSessionFactory.getNewBrowserSession(BrowserSessionFactory.java:87)
    at org.openqa.selenium.server.SeleniumDriverResourceHandler.getNewBrowserSession(SeleniumDriverResourceHandler.java:786)
    at org.openqa.selenium.server.SeleniumDriverResourceHandler.doCommand(SeleniumDriverResourceHandler.java:423)
    at org.openqa.selenium.server.SeleniumDriverResourceHandler.handleCommandRequest(SeleniumDriverResourceHandler.java:394)
    at org.openqa.selenium.server.SeleniumDriverResourceHandler.handle(SeleniumDriverResourceHandler.java:147)
    at org.openqa.jetty.http.HttpContext.handle(HttpContext.java:1530)
    at org.openqa.jetty.http.HttpContext.handle(HttpContext.java:1482)
    at org.openqa.jetty.http.HttpServer.service(HttpServer.java:909)
    at org.openqa.jetty.http.HttpConnection.service(HttpConnection.java:820)
    at org.openqa.jetty.http.HttpConnection.handleNext(HttpConnection.java:986)
    at org.openqa.jetty.http.HttpConnection.handle(HttpConnection.java:837)
    at org.openqa.jetty.http.SocketListener.handleConnection(SocketListener.java:243)
    at org.openqa.jetty.util.ThreadedServer.handle(ThreadedServer.java:357)
    at org.openqa.jetty.util.ThreadPool$PoolThread.run(ThreadPool.java:534)
Caused by: java.net.MalformedURLException: unknown protocol: localhost
    at java.net.URL.<init>(Unknown Source)
    at java.net.URL.<init>(Unknown Source)
    at java.net.URL.<init>(Unknown Source)
    at org.openqa.selenium.net.Urls.toProtocolHostAndPort(Urls.java:24)
    ... 19 more
11:02:29.121 INFO - Got result: Failed to start new browser session: Error while launching browser on session null

Я не понял, почему localhost стал неизвестным протоколом, и я не нашел особой помощи в результате собственного поиска.

Может кто-нибудь помочь мне, пожалуйста, спасибо заранее

1 Ответ

3 голосов
/ 17 марта 2011

Localhost становится неизвестным протоколом, потому что вы не указываете какой-либо протокол перед ним, вы должны изменить :url => "localhost:3000" на :url => "http://localhost:3000", чтобы включить протокол (http).

Также (по крайней мере, наSelenium на Java) каждый обычно использует относительные пути, когда делает эквивалент page.open.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...