Это лучшее описание моей проблемы: мне нужно протестировать сайт, который я не могу редактировать. Сайт работает только в режиме совместимости в моем IE 11 (сделан для ie 7 doc type 5). Я хочу запустить тесты, и куки должны быть очищены перед этим. Но если я установлю «EnsureCleanSession = true», он очистит список совместимости в IE, помимо файлов cookie. Из-за этого невозможно протестировать сайт.
Я нашел возможное решение, но я должен его протестировать... Я обнаружил, что список совместимости находится в реестре, и я могу загрузить его значение до его очистки и снова установить значение:
const string keyName = @"HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\BrowserEmulation\ClearableListData";
var a = Registry.GetValue(keyName, "UserFilter" , "Return this default if NoSuchName does not exist.");
// value of registry is removed
Registry.SetValue(keyName, "UserFilter", a);
Console.ReadLine();
Но, как я уже сказал, я не знаю, поможет ли это...
[ОБНОВЛЕНИЕ]
Хорошо, это работает с небольшим обходным путем (потому что IE должен быть перезапущен после изменения в реестре)
[SetUp]
public void SetUp()
{
//read the compatibility mode list from registry
const string path = @"HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\BrowserEmulation\ClearableListData";
const string key = "UserFilter";
var regValue = Registry.GetValue(path, key, "Return this default if NoSuchName does not exist.");
//run IE driver with cleaning of cookies and history
var options = new InternetExplorerOptions
{
IntroduceInstabilityByIgnoringProtectedModeSettings = true,
EnsureCleanSession = true
};
_driver = new InternetExplorerDriver(IeDriversPath, options);
//cloase IE
_driver.Quit();
_driver.Dispose();
//put the compatibility mode list back into registry
Registry.SetValue(path, key, regValue);
//run IE driver without cleaning of cookies and history
options.EnsureCleanSession = false;
_driver = new InternetExplorerDriver(IeDriversPath, options);
}
person
Marek Manduch
schedule
25.04.2015