grails + selenium-rc插件 - 无法运行样本测试

时间:2011-12-03 18:31:03

标签: grails selenium

我不知道自己做错了什么。我想用Grails的selenium-RC插件做一些功能测试。我使用内置脚本(我猜add-selenium-test)创建了样本测试,生成(我稍微修改了一下):

import grails.plugins.selenium.*
import org.junit.*
import static org.junit.Assert.*
import static org.hamcrest.Matchers.*

@Mixin(SeleniumAware)
class FirstTestTests {
  @Before void setUp() {
  }

  @After void tearDown() {
    super.tearDown()
  }

  @Test void something() {
    selenium.open "/activate"
    assertTrue selenium.isTextPresent("activate")
  }
}

我配置了SeleniumConfig

selenium {

  slow = false                                  // true to run tests in slow resources mode
  singleWindow = true                               // true for single window mode, false for multi-window mode
  browser = "*firefox"                          // can include full path to executable, default value is *firefox or *iexplore on Windows
  url = "http://localhost:8080"                                     // the base URL for tests, defaults to Grails server url
  defaultTimeout = 3000                         // the timeout after which selenium commands will fail
  windowMaximize = true                     // true to maximize browser on startup
  screenshot {
    dir = "./target/test-reports/screenshots"   // directory where screenshots are placed relative to project root
    onFail = true                           // true to capture screenshots on test failures
  }
  server {
    host = "localhost"                          // the host the selenium server will run on
    port = 4444                                 // the port the selenium server will run on
  }
  userExtensions = ""                               // path to user extensions javascript file

}
然后我输入了

  grails test-app :selenium

似乎一切都正确完成了:

INFO 19:30:08,304 RemoteWebDriver instances should connect to: http://127.0.0.1:
4444/wd/hub org.openqa.selenium.server.SeleniumServer
Starting Selenium server on port 4444 ...
INFO 19:30:08,312 Version Jetty/5.1.x org.openqa.jetty.http.HttpServer
INFO 19:30:08,315 Started HttpContext[/selenium-server/driver,/selenium-server/d
river] org.openqa.jetty.util.Container
INFO 19:30:08,318 Started HttpContext[/selenium-server,/selenium-server] org.ope
nqa.jetty.util.Container
INFO 19:30:08,321 Started HttpContext[/,/] org.openqa.jetty.util.Container
INFO 19:30:08,326 Started org.openqa.jetty.jetty.servlet.ServletHandler@55881a8f
 org.openqa.jetty.util.Container
INFO 19:30:08,328 Started HttpContext[/wd,/wd] org.openqa.jetty.util.Container
INFO 19:30:08,338 Started SocketListener on 0.0.0.0:4444 org.openqa.jetty.http.S
ocketListener
INFO 19:30:08,340 Started org.openqa.jetty.jetty.Server@42aefb01 org.openqa.jett
y.util.Container
Starting Selenium session for http://localhost:8080 ...
INFO 19:30:08,502 Checking Resource aliases org.openqa.jetty.util.Credential
INFO 19:30:08,510 Command request: getNewBrowserSession[*firefox, http://localho
st:8080, ] on session null org.openqa.selenium.server.SeleniumDriverResourceHand
ler
INFO 19:30:08,512 creating new remote session org.openqa.selenium.server.Browser
SessionFactory
INFO 19:30:08,586 Allocated session 9250557308cc4886a25100eb6c5f3d7e for http://
localhost:8080, launching... org.openqa.selenium.server.BrowserSessionFactory
INFO 19:30:08,717 Preparing Firefox profile... org.openqa.selenium.server.browse
rlaunchers.FirefoxChromeLauncher
INFO 19:30:11,726 Launching Firefox... org.openqa.selenium.server.browserlaunche
rs.FirefoxChromeLauncher

firefox窗口已打开,但没有任何内容加载,似乎没有任何进展。我想念一下吗?

2 个答案:

答案 0 :(得分:1)

听起来像Selenium RC插件和当前版本的Web浏览器之间不兼容。如果您使用的是较新版本的浏览器,您可能需要深入了解插件的依赖项并将所有内容更新到最新版本。

我们在尝试运行与驱动程序版本不兼容的webdriver版本时会看到Geb(http://www.gebish.org)。

答案 1 :(得分:0)

添加,如果您使用Chrome并且您的操作系统是Ubuntu,那么请确保将完整路径添加到Chrome并确保可执行路径引用 chromium-browser NOT google-chrome。

所以你的SeleniumConfig看起来应该像双星号中的相关行:

selenium {

   slow = false
   singleWindow = true
   **browser = "*googlechrome /usr/bin/chromium-browser"**
   url = null
       defaultTimeout = 60000
   windowMaximize = false
   screenshot {
       dir = "./target/test-reports/screenshots"
       onFail = false
   }
   server {
       host = "localhost"
       port = 4444
   }
   userExtensions = ""
}