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.

No se puede obtener una instancia de seleniumLibrary en robotframework.

Estoy utilizando el framework de robot con Python. Estoy intentando obtener una instancia de la biblioteca seleniumLibrary en un archivo Python utilizando el siguiente código:

from robot.libraries.BuiltIn import BuiltIn

class PythonDemo(object):
    def __init__(self):
        self.myInstance = BuiltIn().get_library_instance('SeleniumLibrary')

Cuando intento usar self.myInstance para poblar palabras clave, no aparece en el archivo .py.

En el archivo .robot, puedo acceder fácilmente a las palabras clave de robot y seleniumLibrary. Pero no puedo usar la instancia de seleniumLibrary en el archivo .python.

A continuación se detallan los detalles de la configuración:

  • Pycharm Community Edition 2020.3
  • Robot Framework 3.2.2
  • Robot Framework PythonLibCore 2.1.0
  • Robot Framework RIDE 1.7.4.2
  • Robot Framework SeleniumLibrary 3.3.1
  • Selenium 4.1.0
  • Python 3.8.0
  • Plugin – intellibot@seleniumLibrary Patched.

¿Hay alguna configuración en Pycharm o me falta algo?

¿Alguien podría ayudarme con este problema?
Gracias

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que estás enfrentando un problema al usar la instancia SeleniumLibrary en un archivo Python. En primer lugar, asegúrate de haber importado correctamente SeleniumLibrary en tu archivo .robot. Si puedes acceder a las palabras clave de SeleniumLibrary en el archivo .robot pero no en el archivo .python, podría ser debido a las siguientes razones:

    1. Asegúrate de que la clase de demostración de Python esté presente en un archivo que se importe en tu conjunto de pruebas robot. Robot Framework no importa automáticamente módulos de Python, por lo que el archivo de Python que contiene la clase debe ser importado en la sección de Configuración del conjunto de pruebas o puedes usar la opción --pythonpath cuando ejecutes el conjunto de pruebas.
    2. Asegúrate de que el archivo de Python tenga el nombre correcto. Robot Framework busca un archivo de Python que coincida con el nombre del conjunto de pruebas para importarlo, con la extensión .py en lugar de .robot. Por ejemplo, si tu conjunto de pruebas se llama mysuite.robot, el archivo de Python correspondiente debería llamarse mysuite.py.

    3. Verifica que la versión de SeleniumLibrary que estás utilizando sea compatible con la versión de Robot Framework que estás utilizando. La versión de SeleniumLibrary que has mencionado (3.3.1) debería funcionar bien con Robot Framework 3.2.2, pero siempre es bueno verificar si hay problemas de compatibilidad.

    4. Asegúrate de que el complemento intellibot@seleniumLibrary Patched esté instalado y habilitado correctamente en Pycharm. Puedes verificar esto yendo a la sección de Complementos en Pycharm y comprobando si el complemento está presente y habilitado.

    Si ninguna de estas soluciones funciona, puedes intentar acceder a la instancia SeleniumLibrary directamente desde un objeto Selenium WebDriver. Aquí tienes un ejemplo:

    from selenium import webdriver
    from robot.libraries.BuiltIn import BuiltIn
    
    class PythonDemo(object):
        def __init__(self):
            self.driver = webdriver.Chrome()
            self.driver.get('http://example.com')
            self.sel_lib = BuiltIn().get_library_instance('SeleniumLibrary', self.driver)
    
        def perform_some_action(self):
            self.sel_lib.input_text('css=input[name="username"]', 'myusername')
    
    

    En este ejemplo, creamos una instancia Selenium WebDriver y navegamos a una página de prueba. Luego, obtenemos la instancia SeleniumLibrary pasando la instancia WebDriver como segundo argumento al método get_library_instance. Ahora la variable sel_lib se puede utilizar para acceder a las palabras clave de SeleniumLibrary en los métodos de la clase Python.

    Espero que esto te ayude a resolver el problema. Si aún tienes algún problema, por favor avísame.

Comments are closed.