我正在尝试在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脚本运行。
非常感谢任何帮助。我觉得我错过了一些重要的步骤。
答案 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的截屏视频: