gpt4 book ai didi

python - 在 gitlab CI/CD 中使用 selenium

转载 作者:行者123 更新时间:2023-12-04 14:09:52 28 4
gpt4 key购买 nike

我已经绝望地试图设置一个 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% 的时间都可以正常工作。
当我向 gitlab 推送提交时,我绝望地收到错误:
>       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重现这个例子。可以在此处直接找到失败的管道:
https://gitlab.com/OlivierLuG/selenium_firefox/-/pipelines/225711127
有没有人知道如何解决这个错误?

最佳答案

我终于设法用下面的 .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/

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