Работает несколько Webdrivers, но возвращается только одно значение - PullRequest
0 голосов
/ 05 мая 2020

Извините за плохую формулировку в названии, я не совсем уверен, как это обозначить.

У меня есть функция в 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. Это приводит к неверному выводу.

...