gpt4 book ai didi

selenium - 尝试使用 Headless Firefox 运行 Selenium 时出现 "connection refused"

转载 作者:太空宇宙 更新时间:2023-11-03 17:23:29 25 4
gpt4 key购买 nike

我使用的每一项的版本如下:Selenium 3.4.0、GeckoDriver v0.19.0 for Linux 64 和 Firefox 52.4.0。

我在这个网站上问过的第一个问题。我通常能够通过简单的潜伏来解决问题,但这个问题让我真正赚钱。

我正在尝试将 Jenkins 设置为“mvn clean test”一个将在“test”上运行 Selenium(使用版本 3.4.0)测试的项目。本质上,该项目是使用 Selenium 与另一个项目进行交互的类的集合。我已将 JUnit 测试附加到该项目,以便通过构建它,我可以使用我创建的测试套件。

我可以在本地计算机上使用 Chrome 或 Firefox 执行此操作,但我想让 Jenkins 每晚自动执行此操作。我在 Centos 7 服务器上安装了 Jenkins,我正试图让该项目与 headless 浏览器一起工作。我在使用 PhantomJS 时遇到了一些单独的问题(DOM 在 Phantom 中是空白的),所以我也尝试使用 headless Firefox(使用版本 52.4.0)。以下是我采取的一般步骤:

  1. 在 CentOS 上安装 Xvfb。
  2. 在 CentOS 上安装 Firefox (52.4.0)。
  3. 运行“Xvfb :99 -ac &”
  4. 运行“export DISPLAY=:99”
  5. 使用“mvn clean test”运行项目。

(我已经并且将会尝试在 Jenkins 上执行第 3 至 5 步,但仍然坚持只让它在 CentOS 上运行。)

项目开始于:


T E S T S

. . . . . .
Running com.*****.*****.workflows.HappyPathTest
. . . . . .
1510266036943 Marionette INFO Listening on port 2828

然后在发生以下情况之前,它会在这一点停留片刻:

org.openqa.selenium.WebDriverException: connection refused
Build info: version: '3.4.0', revision: 'unknown', time: 'unknown'
System info: host: 'localhost.localdomain', ip: '0:0:0:0:0:0:0:1', os.name: 'Linux', os.arch: 'amd64', os.version: '3.10.0-327.36.3.el7.x8 6_64', java.version: '1.8.0_111'
Driver info: driver.version: FirefoxDriver
remote stacktrace: stack backtrace:
0: 0x4f388c - backtrace::backtrace::trace:

等等。

发生错误的行很简单:“methodDriver = new FirefoxDriver();”

我最初认为“连接被拒绝”意味着防火墙以某种方式阻止了它,但是,当然,一切都在同一台服务器上并且“firewalld”进程没有按原样运行。

如有任何帮助,我们将不胜感激。

编辑:建议的线程涉及一个明显相似的问题,但其中的建议与我在这里用来解决问题的建议不同。但是,我确实通过更新我的 Firefox 版本设法解决了这个问题。

最佳答案

好吧,看来我能够解决这个特定问题。

我只是将 firefox 更新到 56.0.1。我最初安装firefox的时候,好像Centos没有默认到最新的。

我记得读过一些内容,大意是“每个版本的 GeckoDriver 都是专门为特定版本的 Firefox 量身定制的”。因此,可能每次您获得新的 GeckoDriver 时都需要一个新的 Firefox。

这为一个全新的问题打开了大门。我到达这一行:

wait.until(ExpectedConditions.presenceOfAllElementsLocatedBy(By.className("resultText")));

这在带头浏览器上运行良好,我得到以下结果:

“org.openqa.selenium.TimeoutException:预期条件失败:WAITING By.className 定位的任何元素的存在:resultText(尝试 20 秒,间隔为 250 毫秒)”

这似乎与我在使用 PhantomJS 时遇到的问题类似。就好像 headless 浏览器访问的站点与有头浏览器完全不同。

关于selenium - 尝试使用 Headless Firefox 运行 Selenium 时出现 "connection refused",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47212724/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com