es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo importar la biblioteca Selenium utilizando builtin.import_library()

Entonces, estoy tratando de importar Selenium a través del código de Python. Este es el código:

from robot.libraries.BuiltIn import BuiltIn
builtin = BuiltIn()
builtin.import_library(r'C:\project\venv\Lib\site-packages\SeleniumLibrary')

Cuando ejecuto, obtengo este error:

raise RobotNotRunningError('Cannot access execution context')
robot.libraries.BuiltIn.RobotNotRunningError: Cannot access execution context

¿Qué debo hacer?

ACTUALIZACIÓN: Este es todo el código:

from robot.libraries.BuiltIn import BuiltIn

runs = [1, 2, 3]

def run_session():
    builtin = BuiltIn()
    builtin.import_library(r'C:\project\venv\Lib\site-packages\SeleniumLibrary')
    # Algún otra cosa

for run in runs:
    Thread(target=run_session).start()

Luego ejecuto este código usando este comando: Python test.py.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error “Cannot access execution context” indica que el script no puede acceder al contexto de ejecución de Robot Framework. Esto puede ocurrir si el script se ejecuta fuera de un caso de prueba o suite de Robot Framework.

    Una forma de resolver este problema es ejecutar el script como un caso de prueba de Robot Framework. Para hacer esto, crea un nuevo archivo de caso de prueba (con extensión .robot) y agrega el siguiente código:

    *** Settings ***
    Library  SeleniumLibrary
    
    *** Test Cases ***
    Run Selenium Script
        ${builtin}=  Import Library  SeleniumLibrary
        # Agrega tu código aquí
    

    Guarda el archivo y ejecútalo utilizando el comando robot, de la siguiente manera:

    robot ruta/al/casodeprueba.robot
    

    Esto iniciará una ejecución de prueba de Robot Framework y ejecutará tu script en el contexto correcto.

    Alternativamente, si necesitas ejecutar tu script fuera de un caso de prueba, puedes utilizar el módulo robot.api para crear un contexto de ejecución manualmente. Aquí tienes un ejemplo:

    from robot.api import TestSuite
    from robot.libraries.BuiltIn import BuiltIn
    
    suite = TestSuite('Mi Suite')
    test = suite.tests.create('Mi Test')
    
    builtin = BuiltIn()
    
    try:
        # Crea el contexto de ejecución
        suite.run(metadata={'selenium': True})
    
        # Importa SeleniumLibrary
        builtin.import_library(r'C:\proyecto\venv\Lib\site-packages\SeleniumLibrary')
    
        # Agrega tu código aquí
    
    finally:
        # Finaliza el contexto de ejecución
        suite.teardown()
    

    Este código crea una nueva suite de pruebas y un caso de prueba, luego utiliza el método robot.api.TestSuite.run() para iniciar un contexto de ejecución. Una vez que se crea el contexto, puedes importar SeleniumLibrary y ejecutar tu script. Por último, se llama al método TestSuite.teardown() para finalizar el contexto.

Comments are closed.