我有Selenium测试套件,该套件可以在默认的浏览器语言(英语)上运行。现在,我必须在套件中引入这样的测试-
我已经在Stack Overflow和其他技术站点上探讨了许多可能的解决方案,以在运行时设置浏览器语言,但是找不到合适的解决方案或以其他方式实现此类方案的可能性。
@Before
public void beforeScenario(Scenario scenario)
{
synchronized (driverThreadLocal)
{
new BrowserDownloadDirectory().cleanDownloadDirectory();
driverThreadLocal.set(new DriverFactory().getConfiguredDriver(scenario));
}
}
public WebDriver getConfiguredDriver(Scenario scenario)
{
WebDriver driver = getDriverForBrowser(getBrowserTypeFromProps(), scenario);
return driver;
}
private String getBrowserTypeFromProps()
{
String type = System.getProperty("tie.ui.test.browser.type");
return (type != null) ? type : "chrome";
}
private WebDriver createChromeDriver(Scenario scenario)
{
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.setProxy(createDirectConnectionProxyConfig());
chromeOptions.addArguments("--no-sandbox");
chromeOptions.addArguments("--start-maximized");
chromeOptions.addArguments("--window-size=1920,1080");
chromeOptions.addArguments("--disable-infobars");
chromeOptions.setCapability("browserName", "chrome");
chromeOptions.setAcceptInsecureCerts(true);
chromeOptions.setCapability("name", scenario.getName());
Map<String, Object> prefs = new HashMap<String, Object>();
String downloadDir = new BrowserDownloadDirectory().getPath().toAbsolutePath().toString();
prefs.put("download.default_directory", downloadDir);
prefs.put("profile.default_content_settings.popups", 0);
prefs.put("profile.content_settings.exceptions.automatic_downloads.*.setting", 1);
chromeOptions.setExperimentalOption("prefs", prefs);
try
{
RemoteWebDriver dsa = new RemoteWebDriver(new
URL(getConfiguredHubEndpoint()),chromeOptions);
dsa.manage().timeouts().pageLoadTimeout(10, TimeUnit.SECONDS);
dsa.manage().timeouts().setScriptTimeout(5, TimeUnit.SECONDS);
dsa.manage().window().maximize();
dsa.setFileDetector(new LocalFileDetector());
return dsa;
}catch (MalformedURLException e)
{
throw new IllegalStateException(e);
}
}
这是我用来初始化浏览器的代码的一部分。我认为调整它不是一个好主意。那么,如何在不单独运行它们的情况下用另一种语言初始化浏览器以测试套件中的一些测试呢?
我非常感谢您在此问题上的帮助,以及对以更好的方式处理此类测试的想法。
预先感谢