我使用的每个项目的版本如下:Selenium 3.4.0,适用于Linux 64和Firefox 52.4.0的GeckoDriver v0.19.0。
我在本网站曾问过的第一个问题。我通常能够通过简单的潜伏来解决问题,但是这个问题让我真正为我付出了代价。
我正在尝试将Jenkins设置为" mvn clean test"一个将运行Selenium(使用版本3.4.0)测试" test"的项目。本质上,该项目是一组使用Selenium与另一个项目交互的类。我已将JUnit测试附加到此项目,以便通过构建它,我可以使用我创建的测试套件。
我可以使用Chrome或Firefox在我的本地计算机上执行此操作,但我想让Jenkins每晚自动执行此操作。我在Centos 7服务器上安装了Jenkins,我试图让这个项目与无头浏览器一起工作。我与PhantomJS有一些不同的问题(幻影中的DOM是空白的),所以我也尝试使用无头Firefox(使用版本52.4.0)。以下是我采取的一般步骤:
(我已经,我会在Jenkins上尝试第3-5步,但我只是坚持让它单独使用CentOS。)
项目开始顺利:
T E S T S
。 。 。 。 。 。
运行com。*****。*****。workflows.HappyPathTest
。 。 。 。 。 。
1510266036943 Marionette INFO在端口2828上收听
然后在此之前坐下来片刻:
org.openqa.selenium.WebDriverException:连接被拒绝了 构建信息:版本:' 3.4.0',修订版:'未知',时间:'未知'
系统信息:主机:' localhost.localdomain',ip:' 0:0:0:0:0:0:0:1',os.name:' Linux& #39;,os.arch:' amd64',os.version:' 3.10.0-327.36.3.el7.x8 6_64',java.version:' 1.8 .0_111'
驱动程序信息:driver.version:FirefoxDriver
remote stacktrace:stack backtrace:
0:0x4f388c - backtrace :: backtrace :: trace:
等等。
发生错误的行很简单:" methodDriver = new FirefoxDriver();"
我最初接受了#34;连接拒绝"意味着防火墙以某种方式阻止了它,但是,当然,一切都在同一台服务器上,并且" firewalld"进程没有按原样运行。
非常感谢任何帮助。
编辑:建议的线程涉及一个明显相似的问题,但其中的建议与我在此处解决问题的方法不同。但是,我确实通过更新我的Firefox版本来解决这个问题。
答案 0 :(得分:0)
请检查磁盘是否已满核心转储文件。它可以位于您的工作目录或用户目录中。 在我的环境中,我们只获得了前20个测试,因为我们的用户目录只有少于1G的可用空间。
答案 1 :(得分:0)
好吧,我似乎能够解决这个具体问题。
我只是将firefox更新为56.0.1。当我最初安装firefox时,看起来Centos没有默认为最新版本。
我记得读过#34的一些内容;每个版本的GeckoDriver都专门针对特定版本的Firefox进行了定制。"所以,每次你获得一个新的GeckoDriver时,你可能需要一个新的Firefox。
这为一个全新的问题打开了大门。我接受了这一行:
wait.until(ExpectedConditions.presenceOfAllElementsLocatedBy(By.className(" resultText&#34)));
对于带头的浏览器工作正常,我得到以下回复:
&#34; org.openqa.selenium.TimeoutException:预期的条件失败:等待By.className所在的任何元素的存在:resultText(尝试20秒,间隔为250 MILLISECONDS)&#34; < / p>
这与PhantomJS的问题类似。好像无头浏览器访问的网站完全不同于头文浏览器。