【发布时间】:2019-05-12 01:08:26
【问题描述】:
我需要在 chrome 浏览器中使用 selenium 将页面从日语翻译成英语。我尝试了不同的方式示例代码sn-p之一如下
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 但没有任何效果可以任何人建议我解决方案
【问题讨论】:
-
用英文版的
https://www.bbc.com/japanese怎么样,我猜URL应该是https://www.bbc.com/english -
不,它只是一个示例站点,我需要代码来更改语言
-
我可以看到一个
HTML标签,其属性为lang,该标签设置为ja。使用 javascript 执行器,我们可以将该值更改为“en”。问题是我们不想刷新页面但要刷新 DOM。我不知道使用 selenium 的任何解决方案,也许 JQuery 可以帮助我们。无论如何,如果您想知道如何更改属性值,可以使用以下代码:JavascriptExecutor js = (JavascriptExecutor) driver; js.executeScript("document.getElementById('responsive-news').setAttribute('lang', 'en')");
标签: selenium selenium-chromedriver google-translate translate