Selenium 脚本通过 Selenium Grid 无头模式运行的时候出现了语言错乱的情况

lionet · 2023年12月01日 · 3183 次阅读

以下代码是我们项目的 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
暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册