Извините за плохую формулировку в названии, я не совсем уверен, как это обозначить.
У меня есть функция в startup.OpenWebdrivers
, которая загружает 4 безголовых веб-драйвера в Chrome, каждый по другой URL.
def LoadWebDrivers(server: str):
options = webdriver.ChromeOptions()
options.add_argument('--ignore-certificate-errors')
options.add_argument('--ignore-ssl-errors')
options.add_argument('--headless')
options.add_argument('--remote-debugging-port=443')
if server == 'en':
global enDriver
enDriver = webdriver.Chrome(options=options,executable_path=driverPath)
enDriver.get('site/en/')
return enDriver
if server == 'jp':
global jpDriver
jpDriver = webdriver.Chrome(options=options,executable_path=driverPath)
jpDriver.get('site/jp/')
return jpDriver
if server == 'cn':
global cnDriver
cnDriver = webdriver.Chrome(options=options,executable_path=driverPath)
cnDriver.get('site/cn/')
return cnDriver
if server == 'tw' or server == 'kr':
global twkrDriver
twkrDriver = webdriver.Chrome(options=options,executable_path=driverPath)
twkrDriver.get('site/cn')
return twkrDriver
В том же файле я загружаю драйверы при запуске скрипта
if drivers_enabled == 'true':
enDriver = LoadWebDrivers('en')
jpDriver = LoadWebDrivers('jp')
cnDriver = LoadWebDrivers('cn')
twkrDriver = LoadWebDrivers('tw')
else:
print('Not loading webdrivers')
Затем у меня есть функция в commands.cogs.Events.py
, которая импортирует 4 переменные
async def fnc(self, ctx, intvalue, server: str = 'en'):
from startup.OpenWebdrivers import enDriver, jpDriver, cnDriver, twkrDriver
....
if server == 'en':
driver = enDriver
print('got here')
elif server == 'jp':
driver = jpDriver
elif server == 'cn':
driver = cnDriver
else:
driver = twkrDriver
output = await AnotherFunctionToGetOutput(driver, server, intvalue)
Если я сделаю print(driver.currentl_url
прямо перед вызовом AnotherFunctionToGetOutput
, это будет URL-адрес twkrDriver
независимо от того, какой server
был передан в fnc
. Это приводит к неверному выводу.