WebDriver - 设置浏览器启动语言
作者: Max.Bai
时间: 2015/06
WebDriver - 设置浏览器启动语言
有时候开启浏览器需要特别的语言版本,比如,英文的,中文的。
测试时候发现,机器默认启动的是系统语言对应的浏览器,我们的被测网站的中文的,而系统是英文的,开启的浏览器就是英文的,提交的某些数据按照en-US的格式提交了,导致数据报错,那么我们就需要设置浏览器启动语言。
1. Firefox
Firefox 我们可以通过FirefoxProfile 来解决这个问题。
FirefoxProfile ffpf = new FirefoxProfile();
ffpf.SetPreference("intl.accept_languages", "en-GB");
// for FirefoxDriver
driver = new FirefoxDriver(ffpf);
// for remote driver
DesiredCapabilities ffcaps = DesiredCapabilities.firefox();
ffcaps.setCapability(FirefoxDriver.PROFILE, ffpf.toString());
driver = new RemoteWebDriver(new URL(remoteUrl), ffcaps);
2. Chrome
Chrome 需要通过ChromeOptions来解决。
同时chromeoption 也可以解决启动浏览器的时候添加执行的参数, 比如--private。
ChromeOptions op = new ChromeOptions();
op.addArguments("--lang=zh-CN");
// for ChromeDriver
driver = new ChromeDriver(op);
// for remote driver
DesiredCapabilities chromecaps = DesiredCapabilities.chrome();
chromecaps.setCapability("chromeOptions", op);
driver = new RemoteWebDriver(new URL(remoteUrl), chromecaps);
貌似intl.accept_languages也可以,没有试验
Chromedriver caps官网
https://sites.google.com/a/chromium.org/chromedriver/capabilities
3. IE
IE 就简单了,不用代码解决,直接手动设置IE的语言就可以了,自动化执行的时候就是你设置的语言了,当然你也可以修改注册表来自动化这个问题,具体哪个注册表自己查吧
IE添加添加启动参数可以使用DesiredCapabilities
DesiredCapabilities iecaps = DesiredCapabilities.internetExplorer();
iecaps.setCapability(InternetExplorerDriver.FORCE_CREATE_PROCESS, true);
iecaps.setCapability(InternetExplorerdriver.IE_SWITCHES, "-private");
// for InternetExplorerDriver
driver = new InternetExplorerDriver(iecaps);
// for remote driver
driver = new RemoteWebDriver(new URL(remoteUrl), iecaps);