如何在Chrome中启用Selenium的自动翻译?

jmp7cifd  于 2023-09-28  发布在  Go
关注(0)|答案(1)|浏览(118)

我使用的是Google Chrome 114和Python 3.8以及Selenium v。4.0.0安装到Ubuntu服务器上。
这是我的代码,工作完美

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,但没有自动翻译功能。
我的问题是:
1.如何在无头模式下启用自动翻译?
1.否则,有没有办法在没有桌面环境的服务器上以head模式运行Chrome?
谢谢.

x0fgdtte

x0fgdtte1#

您可以使用虚拟显示器在无头显示器上以有头模式运行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
    ...

相关问题