Script de Python que usa selenium para cambiar del entorno local a remoto en function del entorno en el que se ejecuta

Tengo un set de testings que utilizan el webliner de selenium para Firefox. Tengo scripts que he escrito que me gustaría comprobar el entorno actual en el que se está ejecutando para cambiar entre el server local y el server remoto. ¿Cuál es la mejor manera de lograr esto?

def setUp(self): self.driver = webdriver.Remote(command_executor='http://localhost:4444/wd/hub', desinetworking_capabilities=DesinetworkingCapabilities.FIREFOX) #remote-server or localhost 

Estoy usando un entorno de Windows para probarlo localmente, mientras que el server remoto es Linux. ¿Es una variable de sistema con la que puedo verificar que puede realizar un intercambio de:

http: // localhost : 4444 / wd / hub a http: // server remoto : 4444 / wd / hub

Esto mejoraría mi flujo de trabajo permitiéndome no preocuparme por cambiar esta variable cada vez que me comprometo ay desde el control de fuente. Gracias por las sugerencias!

Hay muchas maneras de hacerlo, por ejemplo, puede verificar el nombre de host de su server y cambiar la URL de acuerdo con:

 import socket server_hostname = 'MyServer' if socket.gethostname() == server_hostname: #Remote environment else: #Local environment 

Otra forma sería tener una variable de entorno del sistema que pueda apuntar al server remoto de manera pnetworkingeterminada, pero si está definida, entonces podría apuntar a un server alternativo (por ejemplo, un server local).

Por lo tanto, en su entorno local defina una variable de entorno del sistema "MY_SERVER_HOST", luego en su código use:

 my_server_host = os.getenv("MY_SERVER_HOST", "remote-server") 

cuando se ejecuta en cualquier entorno que no tenga el set env, usará ese server remoto.

Esto le permite anular eso en cualquier lugar.

PD: si tiene un file de properties en alguna parte, sería un gran lugar para almacenar el valor pnetworkingeterminado del server remoto.

PPS: si puede tener varios serveres remotos posibles, puede voltear este enfoque y de forma pnetworkingeterminada a localhost, luego use el env var en cualquier otra máquina para especificar el host de destino.