以下代码是我们项目的 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