- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经绝望地试图设置一个 pytest
由 gitlab 托管的我的个人项目的管道 CI/CD。
我试图用两个基本文件建立一个简单的项目:
文件 test_core.py
,为了简单起见,没有任何其他依赖项:
# coding: utf-8
# !/usr/bin/python3
import pytest
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.firefox.options import Options
def test_basic_headless_selenium_example():
"""Test selenium installation by opening python website.
(inspired by https://selenium-python.readthedocs.io/getting-started.html)
"""
opts = Options()
opts.headless = True
driver = webdriver.Firefox(options=opts)
driver.get("http://www.python.org")
driver.close()
文件
.gitlab-ci.yml
, 对于 CI/CD 自动测试:
stages:
- tests
pytest:python3.7:
image: python:3.7
stage: tests
services:
- selenium/standalone-firefox:latest
script:
# - apt-get update && apt-get upgrade --assume-yes
- wget -O ~/FirefoxSetup.tar.bz2 "https://download.mozilla.org/?product=firefox-latest&os=linux64"
- tar xjf ~/FirefoxSetup.tar.bz2 -C /opt/
- ln -s /opt/firefox/firefox /usr/lib/firefox
- export PATH=$PATH:/opt/firefox/
- wget -O ~/geckodriver.tar.gz "https://github.com/mozilla/geckodriver/releases/download/v0.28.0/geckodriver-v0.28.0-linux64.tar.gz"
- tar -zxvf ~/geckodriver.tar.gz -C /opt/
- export PATH=$PATH:/opt/
- pip install selenium pytest
- pytest
在我的笔记本电脑上,
pytest
命令 100% 的时间都可以正常工作。
> raise exception_class(message, screen, stacktrace)
E selenium.common.exceptions.WebDriverException: Message: Process unexpectedly closed with status 255
/usr/local/lib/python3.7/site-packages/selenium/webdriver/remote/errorhandler.py:242: WebDriverException
=========================== short test summary info ============================
FAILED test_selenium.py::test_basic_headless_selenium_example - selenium.comm...
============================== 1 failed in 1.29s ===============================
Cleaning up file based variables
00:01
ERROR: Job failed: exit code 1
我创建了一个简单的项目:
https://gitlab.com/OlivierLuG/selenium_firefox重现这个例子。可以在此处直接找到失败的管道:
最佳答案
我终于设法用下面的 .gitlab-ci.yml
在绿色上 ping gitlab CI文件。
请注意,我不是 yaml 语言的粉丝。为了使文件更短,我使用了一个共享代码块,名为 install_firefox_geckodriver
.然后,我用 python 3.7 和 3.8 配置了 2 个作业,它们调用了这个块。
使这种测试工作的关键是:
_ 在 headless 模式下运行(这对我来说已经是这种情况)
_ 用命令行安装 firefox 和 geckodriver
_ 安装火狐依赖
_ 使用 gitlab selenium 服务
这是我的 yaml 文件。可以在此处找到成功的管道:https://gitlab.com/OlivierLuG/selenium_firefox/-/pipelines/225756742
stages:
- tests
.install_firefox_geckodriver: &install_firefox_geckodriver
- apt-get update && apt-get upgrade --assume-yes
- apt-get install gconf-service libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils --assume-yes
- wget -nv -O ~/FirefoxSetup.tar.bz2 "https://download.mozilla.org/?product=firefox-latest&os=linux64"
- tar xjf ~/FirefoxSetup.tar.bz2 -C /opt/
- ln -s /opt/firefox/firefox /usr/lib/firefox
- export PATH=$PATH:/opt/firefox/
- wget -nv -O ~/geckodriver.tar.gz "https://github.com/mozilla/geckodriver/releases/download/v0.28.0/geckodriver-v0.28.0-linux64.tar.gz"
- tar -zxvf ~/geckodriver.tar.gz -C /opt/
- export PATH=$PATH:/opt/
pytest:python3.7:
image: python:3.7
stage: tests
services:
- selenium/standalone-firefox:latest
script:
- *install_firefox_geckodriver
- pip install selenium pytest
- pytest
pytest:python3.8:
image: python:3.8
stage: tests
services:
- selenium/standalone-firefox:latest
script:
- *install_firefox_geckodriver
- pip install selenium pytest
- pytest
关于python - 在 gitlab CI/CD 中使用 selenium,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65157725/
我尝试按照这些说明返回到前一个目录,但结果是“-bash CD:OLDPWD未设置”。。。我怎么能做我想做的事呢?。谢谢。
我认为在 IPython 中使用 ! 前缀的 shell 命令会使系统 shell 实际执行该命令,但似乎并非如此。考虑以下情况,我从 /home/Documents/Rx 开始,启动 IPython
Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。 想改善这个问题吗?更新问题,以便将其作为on-topic
有些 Live CD 可以启动操作系统并允许您无需安装即可使用它。 我想知道是否有一种简单的方法来自定义 Live CD,以便它只加载运行一个应用程序所需的内容,然后运行该应用程序。 最佳答案 对于
当我从 Live CD 启动 Linux Mint 时,我能够将文件保存到“文件系统”。但这些文件保存在哪里呢?不可能是光盘,因为它是 CDR。我不认为它存储在 RAM 中,因为它只能保存这么多数据,
创建了以下类,暂时没有接口(interface)/抽象类: 测试 - 用于创建测试数据 音乐 - 应存储所有 CD CD - 应存储艺术家和 CD 标题 + 所有歌曲 艺术家 - 仅包含字符串名称 歌
在 Git 提交和推送之后,Go 管道有时需要一段时间才能启动。即使在手动按下开始按钮后,也可能需要很长时间。有没有一种设置或方法可以让它更快地获取更改并更快地启动?我不介意它是否在服务器上使用更多资
这可能吗? 我的第一个猜测是: C:> Get-WmiObject Win32_CDROMDrive 但是当我尝试这个时,它只告诉我 Caption , Drive , Manufacturer ,
我正在运行 gitlab 作业,在作业中我试图取消设置在 CI/CD 设置中的某些变量。 例如,我有SOME_VARIABLE设置为 然后,在工作定义中,我正在尝试 variables: SOM
我遇到的问题是 cd不在窗口节点中工作: node("Window-node") { stage('unstash'){ echo
我尝试关注these instructions返回到上一个目录,但这会导致“-bash cd: OLDPWD not set”。 我怎样才能做我想做的事? 谢谢。 最佳答案 我也遇到了同样的问题。为
我在postgresql有点情况 我有两个表 t1 和 t2,并且都有一个列具有相同类型的数据“col_data”,col_data 可能只有以下数据 ('ab', 'cd', 'ab,cd', 'c
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我如何在 PowerShell 中编写函数或别名命令,以便 cd 可以做两件事: cd 给定的目录 ls 目录内容 编辑: 我需要的是这个: function ccd { param($pat
我有一个表格,其中填充了某些值,例如 | CODE | NAME | NB: THIS IS A VERY BASIC EXAMPLE | zygnc | oscar alpha |
所以表结构是这样的 CD id | Artist id 我想返回在此表中多次出现的艺术家,例如不止一张 CD。 我使用的是 Mysql,那么执行此操
This question already has answers here: Reference - What does this regex mean?
如果我们使用 cd bin,我们应该能够导航到 bin 文件夹。 那么bin目录前使用$的目的是什么?“cd $bin_dir” 请解释一下 最佳答案 $bin_dir 是环境变量(请阅读此处了解更多
我正在使用express generator 。运行生成器后,它输出以下内容: install dependencies: $ cd . && npm install cd .有什么意
我有一个旧程序可以从磁盘读取/翻录 CD/音乐数据。它是一个自定义程序,可以读取轨道数据并将其转换为 wma/wpa/wav 格式。然后用户输入如何获得许可,程序将数据和音乐文件提取到我们的 LAN。
我是一名优秀的程序员,十分优秀!