我正在尝试在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脚本。
任何帮助将不胜感激。我觉得我错过了一些重要步骤。
最佳答案
在错误链接的第162行,我可以看到:
org.openqa.selenium.WebDriverException:无法在端口7055上连接到二进制FirefoxBinary(C:\ Program Files \ Mozilla Firefox \ firefox.exe);过程输出如下:
我已经在Eclipse中使用here列出的依赖项(硒罐版本2.43.1)尝试了该示例,并得到了similar error:
45000毫秒后无法连接到端口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 :(状态= 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中运行的驱动程序部分由于某种原因而挂起。