在Groovy控制台中试用Geb

时间:2014-05-19 01:23:14

标签: java selenium groovy geb

我正在尝试在Groovy控制台中使用Geb进行一些非常简单的裸线内联编码。

我安装了Groovy,下载了Geb jar并下载了Selenium。

我打开控制台并粘贴在非常简单的地方: -

@Grapes([
@Grab("org.codehaus.geb:geb-core:0.7.2"),
@Grab("org.seleniumhq.selenium:selenium-firefox-driver:2.28.0"),
@Grab("org.seleniumhq.selenium:selenium-support:2.28.0")
])

import geb.Browser

Browser.drive {
 go "http://google.com/"
 assert title == "Google"
}

当我运行此操作时,Firefox会在空白页面上打开并挂起很长时间,然后控制台才会响应垃圾邮件,这些错误太长,无法在此处发布。

所以我把它放在PasteBucket上 链接 - > http://www.pastebucket.com/40187

我真的很开心,只是开始使用Geb.我使用Selenium Webdriver并通过Java脚本进行自动化没有任何问题,但经过几个小时的模糊或过于复杂的指南挣扎后,我仍然无法使最简单的Geb脚本运行。

非常感谢任何帮助。我觉得我错过了一些重要的步骤。

2 个答案:

答案 0 :(得分:2)

在错误链接的第162行,我可以看到:

  

org.openqa.selenium.WebDriverException:无法连接到端口7055 上的二进制FirefoxBinary(C:\ Program Files \ Mozilla Firefox \ firefox.exe);过程输出如下:

我在Eclipse中尝试了一个带有依赖关系的示例here(selenium jar版本2.43.1)并得到了similar error

  

45000 ms后无法在端口7055上连接到主机127.0.0.1

然后我根据Webdriver Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms切换到最新的jars版本2.46.0并且它工作得很好。我的Firefox版本是38.0.5(最新版本)

为什么它不适用于旧版本? tcp连接是半开的

  

TCP 127.0.0.1:57855 127.0.0.1:7055 SYN_SENT 6760

和线程转储显示主线程试图从套接字读取:

  

主题1 :( state = IN_NATIVE)   -java.net.DualStackPlainSocketImpl.connect0(int,java.net.InetAddress,int)@ bci = 0(解释框架)   -java.net.DualStackPlainSocketImpl.socketConnect(java.net.InetAddress,int,int)@ bci = 28,line = 79(解释框架)   .................................................. ....   -org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(java.lang.Object,java.lang.Object,java.lang.Object)@ bci = 7,line = 120(解释框架)   -org.toni.geb_test_jar.GebTestSimple.main(java.lang.String [])@ bci = 13(解释框架)

这让我觉得在Firefox中运行的驱动程序部分由于某种原因而挂起。

答案 1 :(得分:-1)

你并没有真正提出问题......但你隐含的问题是:"我如何开始使用Geb?"

我有一个example Geb project on GitHub和一些关于如何在我的博客上开始使用Geb的截屏视频: