以下代码是我们项目的 chromedriver option 代码,当添加了

options.add_argument('--headless') 
options.add_argument('--disable-gpu')

这个无头启动的 option 之后,发现运行有时候会出现语言错乱的情况,就是理论上需要打开中文环境运行的脚本,错误截图显示是英文。不添加无头参数的时候又是正确的,有大佬知道这是什么情况吗?(我们的脚本是通过 docker selenium grid 运行的)

def chrome_options(context, mobile=False):
    options = webdriver.ChromeOptions()
    options.add_experimental_option('w3c', False)
    if "en" in context.language:
        options.add_argument('--lang=en_US')
        options.add_experimental_option('prefs', {'intl.accept_languages': 'en_US'})
    else:
        options.add_argument('--lang=zh_CN')
        options.add_experimental_option('prefs', {'intl.accept_languages': 'zh_CN'})
    if mobile:
        mobile_emulation = {
            "deviceName": "iPhone 12 Pro"
        }
        options.add_experimental_option('mobileEmulation', mobile_emulation)
    if context.browser.lower() == "docker":
        options.add_argument('--headless')
        options.add_argument('--disable-gpu')
    return options


↙↙↙阅读原文可查看相关链接,并与作者交流