提问人:Sandy 提问时间:9/7/2023 更新时间:9/7/2023 访问量:48
如何使用 Selenium 在 Chrome Headless 中启用自动翻译?
How to enable auto translating in Chrome headless with Selenium?
问:
我正在将 Google Chrome 114 与 python 3.8 和 selenium v. 4.0.0 一起使用到 Ubuntu Server 机器上。
这是我的代码,运行良好
class Chrome:
def __init__(self):
self.s = ChromeService(DRIVER_PATH, log_path=GECKO_LOG_PATH)
self.chrome_options = Options()
self.chrome_options.add_argument("--headless")
self.chrome_options.add_argument("start-maximized")
self.chrome_options.add_argument("disable-infobars")
self.chrome_options.add_experimental_option(
"excludeSwitches",
[
'enable-automation',
'disable-default-apps',
'disable-translate'
]
)
self.chrome_options.add_argument("--disable-extensions")
self.chrome_options.add_argument("--window-size=1920,1080")
self.chrome_options.add_argument("--lang=en")
prefs = {
"translate_whitelists": {
"en":"es",
"jp":"es",
},
"translate":{"enabled":"true"},
}
self.chrome_options.add_experimental_option("prefs", prefs)
由于我无法在没有桌面环境的情况下在 ubuntu 服务器上使用它,因此我必须以无头模式启动 chrome,但没有自动翻译功能。
我的问题是:
- 如何在无头模式下启用自动翻译?
- 否则,有没有办法在没有桌面环境的情况下以头部模式运行 Chrome?
谢谢。
答:
2赞
Michael Mintz
9/7/2023
#1
您可以使用虚拟显示器在无头显示器上以有头模式运行 selenium,这应该可以解决您的问题。
Python 虚拟显示有两个常用的库:
下面是一个使用示例:sbvirtualdisplay
from sbvirtualdisplay import Display
display = Display(visible=0, size=(1440, 1880))
display.start()
# Run browser tests in a headless environment
display.stop()
如果要确保显示已停止,即使脚本在结束前失败,也请使用上下文管理器格式:
with Display(visible=0, size=(1440, 1880)):
# Run browser tests in a headless environment
...
评论
1赞
Sandy
9/11/2023
谢谢!即使翻译并不总是有效,它也能工作
评论