我有一个 azure 管道,它会触发一个 python 硒证书,用于检查我的网站是否正常工作。
但是有一个阶段一直失败,因为我需要selenium来输入一个特定的日期,并且由于我不确定输入的日期是否是错误的格式(在本地可以正常工作),所以我想在那个阶段截取一个截图,以便完全理解那里发生了什么。
在本地,这是我保存屏幕截图的配置:
try:
wait.until(EC.element_to_be_clickable((By.XPATH, '//*[@id="root"]/div[2]/main/div[4]/div/button[2]'))).click()
except:
driver.save_screenshot('error.png')
这工作得很好,它确实在本地文件夹中输出png图像。但是在azure pipeline上运行这个并不能保存png文件。
这是我的管道配置
stages:
- stage:
jobs:
- job: Configuration
steps:
- task: UsePythonVersion@0
inputs:
versionSpec: '3.8'
addToPath: true
- script: |
python -m pip install --upgrade pip
pip install selenium
printenv
- task: Pythonscript@0
inputs:
scriptSource: 'filePath'
scriptPath: './script1.py'
env:
USERNAMEOT: $(usernameot)
PASSWORDOT: $(passwordot)
- job: Artifact
steps:
- task: CopyFiles@2
displayName: 'Copy Files to: $(build.artifactstagingdirectory)'
inputs:
SourceFolder: '$(system.defaultworkingdirectory)'
Contents: '**.png'
TargetFolder: '$(build.artifactstagingdirectory)'
flattenFolders: true
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: screenshots'
inputs:
PathtoPublish: '$(build.artifactstagingdirectory)'
ArtifactName: screenshots
我确实有一个复制文件和发布工件的任务,但由于此任务并行运行,因此它会在上一个作业之前完成并且不返回任何内容。我在徘徊,即使配置
作业失败,如何将我拥有的 png 文件保存到工件文件夹中?
非常感谢你们能为我提供的任何帮助,伙计们,我真的很挣扎
我在想,即使配置作业失败,我如何将我拥有的png文件保存到人工制品文件夹?
您可以尝试设置作业Artiif
的依赖关系和条件,例如:
jobs:
- job: Artifact
dependsOn: Configuration
condition: succeededOrFailed()
使用依赖项On:Configuration
,作业工件
将在作业Configuration
之后执行。并且条件:successedOrFailed()
将在配置作业失败时保持作业工件
的执行。
您可以查看文档指定条件和依赖关系以获取更多详细信息。