尝试在 Jenkins 上运行机器人框架脚本时出现问题

问题描述 投票:0回答:0

最近我在尝试从 Jenkins 运行一个只运行 .robot 文件的任务时遇到了一个问题。 我一直在搜索并尝试其他在 StackOverFlow 中遇到类似问题的同事的不同选项,但我无法正确运行脚本。

请让我向您展示我在做什么,我的脚本和 Jenkins 设置,以便您可以更好地理解我的问题。

我有这个机器人文件:

*** Settings ***
Documentation   Basic Test
Library    SeleniumLibrary

*** Variables ***
#${result}    /opt/google/chrome/chrome
${Browser}    chrome
${options}    binary_location = '/opt/google/chrome/chrome'

*** Test Cases *** 
Abrir web Pangea
    Open Browser    url=https://www.google.com/    browser=${Browser}   options=${options}
    Close All Browsers

我正在尝试通过这个简单的构建步骤将其作为 Jenkin 简单任务运行:

robot --outputdir results --nostatusrc Test/basic_2.robot

但每次 Console Out 都会向我显示消息:

[Robot_QA_Executions] $ /bin/sh -xe /tmp/jenkins3290544249294601087.sh
+ robot --outputdir results --nostatusrc Test/basic_2.robot
==============================================================================
Basic 2 :: Basic Test                                                         
==============================================================================
Abrir web Pangea                                                      | FAIL |
WebDriverException: Message: unknown error: Chrome failed to start: exited abnormally.
  (unknown error: DevToolsActivePort file doesn't exist)
  (The process started from chrome location /opt/google/chrome/chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
------------------------------------------------------------------------------
Basic 2 :: Basic Test                                                 | FAIL |
1 test, 0 passed, 1 failed
==============================================================================

为了确定 Chrome 路径和这类事情,我还创建了这个 Python 文件:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import time

# Ruta del controlador de Chrome
webdriver.ChromeOptions.binary_location = '/opt/google/chrome/chrome'

# Opciones para el navegador
ChromeOptions = webdriver.ChromeOptions()
ChromeOptions.add_argument('--headless')

# Crea una instancia del navegador Chrome
driver = webdriver.Chrome(chrome_options=ChromeOptions)

# Navega a la pagina web de Google Espana
driver.get("https://www.google.es")
print("google abierto")
time.sleep(2)
driver.get("https://pangea.es/")
print("pangea abierto")

# Cierra el navegador
time.sleep(10)
driver.quit()
print("fin del test")

在运行之后,同样来自 jenkin 任务和构建步骤:

#!/usr/bin/env python3  ./Test/ejemplo_Python_2.py

Python 脚本按预期工作。

你能帮我解决这个问题吗?我尝试了不同的选项,如“选项”、“二进制位置”、“可执行路径”等……但没有成功。 :-(

我还要仔细检查我是否已经安装:

$ /opt/google/chrome/chrome --version
Google Chrome 110.0.5481.177

$ chromedriver --veresion
Starting ChromeDriver 110.0.5481.77 (65ed616c6e8ee3fe0ad64fe83796c020644d42af-refs/branch-heads/5481@{#839}) on port 9515

pip (9.0.3)
Pygments (2.14.0)
robotframework (6.0.2)
robotframework-datadriver (1.6.1)
robotframework-pythonlibcore (3.0.0)
robotframework-seleniumlibrary (6.0.0)
selenium (3.141.0)
setuptools (39.2.0)
urllib3 (1.26.14)

我希望能够从 Jenkins 任务运行 *.robot 文件(我的 Jenkins 在 AWS Linux 机器上运行)以及它在 GitLab 上的存储库。

selenium-webdriver selenium-chromedriver robotframework robotframework-browser
© www.soinside.com 2019 - 2024. All rights reserved.