代码之家  ›  专栏  ›  技术社区  ›  Kumrun Nahar Keya

Chromedriver:如何使用硒翻译页面?

  •  2
  • Kumrun Nahar Keya  · 技术社区  · 6 年前

    我需要在Chrome浏览器中使用Selenium将一个页面从日语翻译成英语。我尝试了不同的方法其中一个示例代码片段如下

    import java.util.concurrent.TimeUnit;
    import org.junit.Test;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.chrome.ChromeDriver;
    import org.openqa.selenium.chrome.ChromeOptions;
    import org.openqa.selenium.remote.DesiredCapabilities;
    public class Main {
    
        private WebDriver driver=null;
        WebDriverLoad a;
    
        @Test
        public void successfulDesignerLogin() throws Exception{
    //      final DesiredCapabilities capabilities = DesiredCapabilities.chrome();
    //        capabilities.setJavascriptEnabled(true);
            String chromedriver =  "/dev/Saved/chromedriver";
            System.setProperty("webdriver.chrome.driver",chromedriver);
    
            ChromeOptions options = new ChromeOptions();
            options.addArguments("--lang=en-ca");
            //Map<String, Object> prefs = new HashMap<String, Object>();
            //prefs.put("intl.accept_languages", "en,en_US");
            //options.setExperimentalOption("prefs", prefs);
    
    
           ChromeDriver driver = new ChromeDriver(options);
           driver.manage().timeouts().implicitlyWait(4, TimeUnit.SECONDS);
           driver.get("https://www.bbc.com/japanese");
           driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
           driver.close();
    
    
    }
    }
    

    我试了两种方法 options.addArguments options.setExperimentalOption 但没什么能起作用的,任何人都能告诉我什么是解决办法

    1 回复  |  直到 6 年前
        1
  •  3
  •   ewwink    6 年前

    您需要启用翻译并将目标语言ID添加到白名单中 {"from" : "to"} .

    "translate":{"enabled":"true"}
    "translate_whitelists": {"ja":"en"}
    

    在Java中:

    Map<String, Object> prefs = new HashMap<String, Object>();
    Map<String, Object> langs = new HashMap<String, Object>();
    langs.put("ja", "en");
    prefs.put("translate", "{'enabled' : true}");
    prefs.put("translate_whitelists", langs);
    options.setExperimentalOption("prefs", prefs);