如何使用 selenium python 在 Edge 中将网页语言从英语更改为其他语言?

How to change webpage language from English to others in Edge using selenium python?

我知道如何在 selenium 中更改语言。你会说:

options = EdgeOptions()
options.use_chromium = True
options.add_experimental_option('excludeSwitches', ['enable-logging'])
prefs = {
        "translate_whitelists": {'fr':'en'},
        "translate":{"enabled":"true"}}
options.add_experimental_option("prefs", prefs)
driver = Edge(executable_path=PATH, options=options)

这适用于所有类型的语言,但当我尝试从英语更改为另一种语言时,它不起作用。例如:

prefs = {
        "translate_whitelists": {'en':'es'},
        "translate":{"enabled":"true"}}
options.add_experimental_option("prefs", prefs)

但是如果我说"translate_whitelists": {'es':'fr'}, 有用。基本上你可以转换为任何输出语言,但如果输入语言是英语,它就不起作用。请帮忙解释一下

英语有多种风格,因此在从英语翻译过来的情况下,您应该区分英国英语和美国英语,而不是简单地 en 英语。
所以,而不是

"translate_whitelists": {'en':'es'}

试试这个

"translate_whitelists": {'en-GB':'es'}

或这个

"translate_whitelists": {'en-US':'es'}

您可以通过add_argument()解决问题。我用你提供的代码测试了它,效果很好。

这是一个简单的例子:

from msedge.selenium_tools import Edge, EdgeOptions

options = EdgeOptions()
options.use_chromium = True
options.add_argument("--lang=fr");
options.add_experimental_option('excludeSwitches', ['enable-logging'])
prefs = {
        "translate_whitelists": {'en':'fr'},
       "translate":{"enabled":"true"}}
options.add_experimental_option("prefs", prefs)

driver = Edge(executable_path=r"C:\Users\Administrator\Desktop\msedgedriver.exe", options=options)
driver.get("https://docs.microsoft.com/en-us/deployedge/configure-microsoft-edge")

注意:根据自己的情况修改EdgeDriver路径