我正在尝试在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中运行的驱动程序部分由于某种原因而挂起。

07-25 22:53
查看更多