首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jenkins: shell脚本中的ChromeDriver更新路径,并使用新版本

Jenkins: shell脚本中的ChromeDriver更新路径,并使用新版本
EN

Stack Overflow用户
提问于 2020-12-01 03:38:27
回答 1查看 307关注 0票数 0

我正在寻找一种方法来更新Jenkins中的路径,以便使用PyTest运行Selenium测试。我需要运行最新版本的chromedriver,但由于基础架构的不足(我们的基础映像运行的是Debian,最新的可用版本是73,我需要至少运行83)。位于/usr/bin的映像上已经安装了chromedriver的一个版本,我需要能够指向其他版本

jenkins chromedriver插件似乎只会使用debian可用的最新版本,这对我一点帮助都没有。

在我有时间解决系统问题之前,我只想安装chromedriver并更新PATH -因为Selenium需要在PATH上安装chromedriver

为了便于使用,https://pypi.org/project/chromedriver-binary/似乎是一个很好的解决方案--它安装得很好,而且chromedriver-path脚本会响应这个位置,所以我可以像文档中显示的那样更新路径:PATH=$PATH:chromedriver-path

这在Jenkins中似乎并不靠谱-- PATH没有更新

代码语言:javascript
复制
stages {
    stage('build'){
        steps {
            withCredentials([...]) {

                    sh """
                        alias python=python3.8
                        python -m venv --system-site-packages venv # only for jenkins
                        python -u setup.py
                        . venv/bin/activate

                        which chromedriver #/usr/bin/chromedriver  
                        chromedriver-path #path/to/python/lib/python3.8/site-packages/chromedriver_binary
                        export PATH=$PATH:`chromedriver-path`
                        
                        which chromedriver #/usr/bin/chromedriver
                        
                    """

                    sh "python -m pytest"
                }

            }
        }
    }

我已经研究了withEnv()选项和environment{}步骤,但我不确定如何访问该二进制文件并在设置chromedriver-binary后更新PATH -因为environment{}似乎无法访问安装在各个步骤中的shell脚本。

任何建议我们都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-01 04:16:58

这个问题实际上可能存在于Jenkinsfile声明中。

尝试使用带有单引号'''sh。此外,二进制文件是从左到右在PATH中定义的目录中搜索的,因此要覆盖系统PATH,您必须将目录放在开头,而不是结尾。

如果我修改你的代码片段:

代码语言:javascript
复制
stages {
    stage('build'){
        steps {
            withCredentials([...]) {

                    sh '''
                        alias python=python3.8
                        python -m venv --system-site-packages venv # only for jenkins
                        python -u setup.py
                        . venv/bin/activate

                        which chromedriver #/usr/bin/chromedriver  
                        chromedriver-path #path/to/python/lib/python3.8/site-packages/chromedriver_binary
                        export PATH=$(chromedriver-path):$PATH
                        
                        echo $PATH # just to check the output, your path should be on the beginning
                        which chromedriver # this should now find the proper chromedriver
                        
                    '''

                    sh "python -m pytest"
                }

            }
        }
    }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65080079

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档