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.

¿Existe alguna forma de importar una variable de un archivo al siguiente? [Programación Orientada a Objetos]

Hola, acabo de aprender sobre la programación orientada a objetos. Sin embargo, recientemente me encontré con un problema…

Me gustaría preguntar si hay alguna forma de importar una variable de un archivo al siguiente, o cualquier otra forma que pueda usar para encontrar un elemento en file2 utilizando un valor obtenido de un método en file1.
Pensé en importar el valor guardado dentro de la variable max_sim encontrado a través de mi método en file1 y usarlo dentro de otro localizador en file2. Sin embargo, me encuentro con un error ya que max_sim no es reconocido en mi archivo de localizadores (file2).

Este file1 contiene todos mis localizadores para mi programa de bot:

@property
def simulator_mod(self):
    locator = (By.XPATH, '//input[@value="' + str(max_sim) + '"]')
    return BaseElement(driver=self.driver, by=locator[0], value=locator[1])

Este otro file2 contiene todos mis métodos que me ayudan a ejecutar mi programa:

class BaseElement(object):
    def __init__(self, driver, by, value):
        self.driver = driver
        self.value = value
        self.by = by
        self.locator = (self.by, self.value)
        self.web_element = None

    def find_elements(self):
        elements = WebDriverWait(self.driver, 10).until(EC.visibility_of_all_elements_located(locator=self.locator))
        self.web_element = elements
        return None

    def select_sim_element(self):
        self.find_elements()
        simulator_list = []
        simulator_elements = self.web_element
        breakpoint()
        for sim in simulator_elements:
            sim_list_val = sim.get_attribute("value")
            simulator_list.append(int(sim_list_val))
        max_sim = max(simulator_list)
        return max_sim
Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Sí, hay una forma de importar una variable de un archivo a otro. Puedes usar la declaración import para importar la variable de file1 a file2.

    Por ejemplo, en file2, puedes importar la variable max_sim de file1 añadiendo la siguiente línea al principio de file2:

    from file1 import max_sim
    

    Luego, puedes utilizar la variable max_sim en tu localizador en file2 de la siguiente manera:

    locator = (By.XPATH, '//input[@value="' + str(max_sim) + '"]')
    

    Asegúrate de haber definido la variable max_sim en file1 antes de importarla en file2.

    Alternativamente, puedes pasar el valor max_sim como parámetro al método en file2 que lo necesite, en lugar de intentar importar la variable directamente. De esta manera, no necesitas preocuparte por importar variables entre archivos.

    Por ejemplo, puedes modificar el método select_sim_element en file2 para que acepte el valor max_sim como parámetro:

    def select_sim_element(self, max_sim):
        locator = (By.XPATH, '//input[@value="' + str(max_sim) + '"]')
        # Utiliza el localizador para encontrar el elemento y devolverlo
    

    Luego, en file1, puedes llamar al método select_sim_element y pasar el valor max_sim como parámetro:

    element = BaseElement(driver, 'xpath', '//input')
    max_sim = element.select_sim_element()
    # Ahora puedes usar el valor max_sim en tu próximo localizador o llamada al método
    element2 = BaseElement(driver, 'xpath', '//input[@value="' + str(max_sim) + '"]')
    

Comments are closed.