我正在使用Selenium,并且测试会随机选择他们运行的浏览器。 我有一些测试测试与国际化相关的功能,所以我需要让浏览器指定浏览器语言。
我最好的猜测是我需要使用SetCapability方法作为DesiredCapabilities类的一部分,但我不确定哪些功能可以设置。
答案 0 :(得分:5)
结论/解决方案
最终我会使用Firefox,因为它的支持似乎更彻底。
这是我的解决方案:
var fp = new FirefoxProfile();
fp.SetPreference("intl.accept_languages", "en-au");
desiredCap.SetCapability(FirefoxDriver.ProfileCapabilityName, fp.ToBase64String());
对于Chrome,它对语言的支持仅限于ISO 639-1,这意味着它仅支持2种字符语言。我尝试了en-au,en-ca等,似乎只是在这些情况下添加英语(英国)。 以下是我尝试的选项及其结果的摘要:
var options = new ChromeOptions();
//options.AddArgument("--lang=es"); //espanol
//options.AddArgument("--lang=es-mx"); //espanol (Latinoamerica), espanol
//options.AddArgument("--lang=en-ca"); //english (UK), english (us), english
//options.AddArgument("--lang=en-au"); //english (UK), english (us), english
//options.AddArgument("--lang=en-nz"); //english (UK), english (us), english
//options.AddArgument("--lang=zh"); //english (us), english
//options.AddArgument("--lang=zh-tw"); //Chinese (Traditional Chinese), Chinese, english (us), english
//options.AddArgument("--lang=zh-hk"); //Chinese (Traditional Chinese), Chinese, english (us), english
//options.AddArgument("--lang=zh-cn"); //Chinese (Simplified Chinese), Chinese, english (us), english
options.AddArgument("--lang=fr"); //Francais (France), Francais, english (us), english
//options.AddArgument("--lang=fr-ca"); //Francais (France), Francais, english (us), english
//options.AddArgument("--lang=aus"); //Francais (France), Francais, english (us), english
desiredCap.SetCapability(ChromeOptions.Capability, options);
一