当前位置: 首页 > 知识库问答 >
问题:

在从 jenkins 下载 geckodriver 期间 webdriver-manager 更新时出错

谷梁英资
2023-03-14

我正在尝试从jenkins运行网络驱动程序更新。我正在下载geckoDriver和chromeDriver。Chrome驱动下载和解压正常。但是gecko驱动下载不工作。然而,这是从本地工作的罚款。问题仅出现在jenkins

使用的命令:

node_modules/protractor/bin/webdriver-manager update --ignore_ssl --proxy=http://proxy --versions.gecko=v0.25.0 --versions.chrome=78.0.3904.105

服务器中的Firefox版本:60.9.0

错误:

[16:23:13] I/http_utils - ignoring SSL certificate
[16:23:13] I/config_source - curl -ok /var/lib/jenkins/jobs/x/workspace/node_modules/protractor/node_modules/webdriver-manager/selenium/chrome-response.xml 'http://proxy...' -H 'host:chromedriver.storage.googleapis.com'
[16:23:13] I/http_utils - ignoring SSL certificate
[16:23:13] I/config_source - curl -ok /var/lib/jenkins/jobs/x/workspace/node_modules/protractor/node_modules/webdriver-manager/selenium/gecko-response.json 'http://proxy.../repos/mozilla/geckodriver/releases' -H 'host:api.github.com'
[16:23:13] I/http_utils - ignoring SSL certificate
[16:23:14] I/downloader - curl -ok /var/lib/jenkins/jobs/x/workspace/node_modules/protractor/node_modules/webdriver-manager/selenium/chromedriver_78.0.3904.105.zip 'http://proxy.../78.0.3904.70/chromedriver_linux64.zip' -H 'host:chromedriver.storage.googleapis.com'
[16:23:14] I/update - chromedriver: unzipping chromedriver_78.0.3904.105.zip
[16:23:14] I/update - chromedriver: setting permissions to 0755 for /var/lib/jenkins/jobs/x/workspace/node_modules/protractor/node_modules/webdriver-manager/selenium/chromedriver_78.0.3904.105
[16:23:16] I/http_utils - ignoring SSL certificate
[16:23:17] E/downloader - tunneling socket could not be established, statusCode=403
[16:23:17] I/update - geckodriver: file exists /var/lib/jenkins/jobs/x/workspace/node_modules/protractor/node_modules/webdriver-manager/selenium/geckodriver-v0.25.0.tar.gz
[16:23:17] I/update - geckodriver: unzipping geckodriver-v0.25.0.tar.gz
(node:42561) UnhandledPromiseRejectionWarning: Error: ENOENT: no such file or directory, rename '/var/lib/jenkins/jobs/x/workspace/node_modules/protractor/node_modules/webdriver-manager/selenium/geckodriver' -> '/var/lib/jenkins/jobs/x/workspace/node_modules/protractor/node_modules/webdriver-manager/selenium/geckodriver-v0.25.0'
    at Object.renameSync (fs.js:598:3)
    at unzip (/var/lib/jenkins/jobs/x/workspace/node_modules/protractor/node_modules/webdriver-manager/built/lib/cmds/update.js:240:8)
    at files_1.FileManager.downloadFile.then.downloaded (/var/lib/jenkins/jobs/x/workspace/node_modules/protractor/node_modules/webdriver-manager/built/lib/cmds/update.js:205:13)
    at process._tickCallback (internal/process/next_tick.js:68:7)
(node:42561) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:42561) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

当我手动下载驱动程序文件并添加到node_modules/selenium位置时,webdrive-Manager更新成功。但是隧道套接字错误仍然存在。下面的日志:

[16:30:00] I/http_utils - ignoring SSL certificate
[16:30:00] I/http_utils - ignoring SSL certificate
[16:30:00] I/http_utils - ignoring SSL certificate
[16:30:00] I/update - chromedriver: file exists /var/lib/jenkins/jobs/x/workspace/node_modules/protractor/node_modules/webdriver-manager/selenium/chromedriver_78.0.3904.105.zip
[16:30:00] I/update - chromedriver: unzipping chromedriver_78.0.3904.105.zip
[16:30:00] I/update - chromedriver: setting permissions to 0755 for /var/lib/jenkins/jobs/x/workspace/node_modules/protractor/node_modules/webdriver-manager/selenium/chromedriver_78.0.3904.105
[16:30:00] I/update - chromedriver: chromedriver_78.0.3904.105 up to date
[16:30:02] E/downloader - tunneling socket could not be established, statusCode=403
[16:30:02] I/update - geckodriver: file exists /var/lib/jenkins/jobs/x/workspace/node_modules/protractor/node_modules/webdriver-manager/selenium/geckodriver-v0.25.0.tar.gz
[16:30:02] I/update - geckodriver: unzipping geckodriver-v0.25.0.tar.gz
[16:30:02] I/update - geckodriver: setting permissions to 0755 for /var/lib/jenkins/jobs/x/workspace/node_modules/protractor/node_modules/webdriver-manager/selenium/geckodriver-v0.25.0
[16:30:02] I/update - geckodriver: geckodriver-v0.25.0 up to date

但是ng e2e失败,并出现以下错误:

[16:30:03] I/启动器 - 运行 1 个 WebDriver 实例

[16:30:03] I/direct - Using FirefoxDriver directly...
[16:30:03] E/launcher - spawn /var/lib/jenkins/jobs/x/workspace/node_modules/protractor/node_modules/webdriver-manager/selenium/geckodriver-v0.25.0 EACCES
[16:30:03] E/launcher - Error: spawn /var/lib/jenkins/jobs/x/workspace/node_modules/protractor/node_modules/webdriver-manager/selenium/geckodriver-v0.25.0 EACCES
    at Process.ChildProcess._handle.onexit (internal/child_process.js:240:19)
    at onErrorNT (internal/child_process.js:415:16)
    at process._tickCallback (internal/process/next_tick.js:63:19)
[16:30:03] E/launcher - Process exited with error code 199
npm ERR! code ELIFECYCLE
npm ERR! errno 1

我在progrator.conf.js中使用directconnect=true

有人可以检查我在这里做错了什么吗?

共有2个答案

谭健柏
2023-03-14

当我在码头集装箱里做这个的时候,我遇到了同样的问题。没有安装“tar”和“gzip”软件包。在我安装了这些软件包后,问题得到了解决。

南门烈
2023-03-14

您可以在此处尝试以下几种方法:

1) 如果您的测试在容器中运行,则必须在功能中添加一个<code>标志--disable dev shm usage</code>来禁用开发人员shm的使用。或者,您可以在运行测试时将dev/shm作为卷装载。

2)您可以在firefox的浏览器功能中将木偶设置为true。

3)以root身份运行容器,使其以特权用户身份运行

4) 使用 ./node_modules/protractor/bin/protractor protractor.conf.js 而不是使用 ng e2e 运行测试

5) 使用更新webdriver包/node_modules/pergrator/bin/webdriver管理器更新--ignore_ssl--代理=http://proxy--版本.gecko=v0.25.0--版本.chrome=78.0.3904.105

6)尝试将这些行添加到docker图像的入口点:

#!/bin/bash
uid=$(stat -c %u ${PWD})
gid=$(stat -c %g ${PWD})

groupadd -o -g $gid protractor
useradd -m -o -u $uid -g $gid protractor

sudo -u protractor npm run test

我仍然不能说这些步骤之一是否可以解决您的问题。

 类似资料:
  • 我想把Jasypt库和spring属性机制集成起来。 在示例教程http://www.jasypt.org/spring31.html中,作者假设用户手动执行加密,然后只在ENC()占位符之间向配置文件传递加密值。对我来说还不够。 启动应用程序 Spring Framework将加密密码(使用jasypt)并将上面的行替换为: 在进一步启动时,spring仅解密加密值(例如,使用),文件不被修改。

  • 问题内容: 我一直在解决内部Eclipse错误两天。我正在运行Eclipse的最新Spring Tool Suite版本,并且试图导入现有Maven项目的集合。每当执行此操作时,Eclipse都会引发NullPointerException,但“错误日志”视图中没有可用的堆栈跟踪。如果我指示Eclipse更新Maven项目(“ Maven”>“更新项目”),则会再次获得NullPointerExc

  • 我已经和内部日食错误斗争了两天。我正在运行最新的Eclipse Spring Tool Suite版本,并试图导入现有Maven项目的集合。每当我这样做时,Eclipse都会抛出一个NullPointerException,但是错误日志视图中没有可用的堆栈跟踪。如果我指示Eclipse更新Maven项目(Maven>update project),我将再次获得一个NullPointerExcept

  • 我在向表单输入日期时遇到了一个问题,我查看了其他帖子,但他们给我的解决方案对我不起作用:(错误指示我一个无效的月份错误。 我尝试使用TO_DATE('...','dd/mm/yyyy'),但通过这样做引发了另一个错误(actualizaoferta.php): 我试了很多方法来输入日期,但什么都没有。 程序 提前致谢:)

  • 在eclipse eclipse Java EE IDE下为Web开发人员更新Maven项目时,我遇到了这个错误。(版本:Kepler Service Release 2)在“更新Maven项目”过程中出现内部错误。路径必须包括项目和资源名称:/MyProjectName Thanks

  • 问题内容: 经过大量的google’ing和PHP手动阅读之后,我真的很想在日期时间加上X分钟,但似乎一无所获。 我的日期时间格式是: : 要添加的分钟数只是0到59之间的数字 我希望输出与添加分钟的输入格式相同。 有人可以给我一个有效的代码示例,因为我的尝试似乎并没有带我去任何地方? 问题答案: 在ISO 8601标准的持续时间 是在形式的串,其中所述部件用指示的持续时间有多长一个数字值代替。