硒和异步

sb2*_*894 5 python-3.x selenium-webdriver python-asyncio discord.py

进行这项工作的最佳方法是什么?由于Selenium无法与asyncio配合使用,因此该机器人最终将死亡。它可以按预期工作,但最终会崩溃。我确实知道问题出在哪里,尤其是硒很重,但是有没有好的解决方法?

我收到错误消息:任务已被破坏,但未决!

我没有别的,没有回溯。我必须重新启动机器人(discord),它会再次正常工作。

@bot.command(pass_context=True)
async def weather(ctx, arg):
    if ctx:
        list = ('lf','oahu')
        await bot.say('*Loading webdriver.....*')
        if arg in list:
            if arg == 'lf':
                website = '--'
                name = 'Los Feliz Map'
            if arg == 'oahu':
                website = '--'
                name = 'Oahu Map'
            load_site = webdriver.Chrome()
            # load site on chrome
            load_site.get(website)
            await bot.say('*Loading ' + str(name) + '...*')
            load_site.find_element_by_xpath('//*[@id="main-map"]/div[2]/div[1]/div/a[2]').click()
            load_site.find_element_by_xpath('//*[@id="main-map"]/div[2]/div[2]').click()
            load_site.find_element_by_xpath('//*[@id="main-map"]/div[2]/div[2]/div/form/div[3]/label[6]/div/span').click()
            await asyncio.sleep(2) #sleep to ensure weather loads on site before screenshot
            load_site.save_screenshot('weather.png')
            await bot.say('*Taking screenshot and saving image....*')
            await bot.send_file(ctx.message.channel, 'weather.png')
            load_site.quit()
            print('Succesfully sent image of ' + str(arg) + ' - ' + str(ctx.message.author.name))
Run Code Online (Sandbox Code Playgroud)

我忽略了该网站,因为它是一个私人网站。