Chromedriver: как перевести страницу с помощью селена? - PullRequest
0 голосов
/ 11 декабря 2018

Мне нужно перевести страницу с японского на английский, используя селен в браузере Chrome.Я попробовал разные способы, как один из примеров кода:

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 Ответ

0 голосов
/ 11 декабря 2018

Необходимо включить перевод и добавить идентификатор целевого языка в белый список {"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);
...