Я закодировал некоторые автоматизированные веб-тесты на C#, они используют Библиотеку кодированных пользовательских интерфейсов.Сбои, меняющие текущий браузер в кодированных пользовательских интерфейсах
Эти тесты не являются кучей записанных действий, они были закодированы и выполнены в IE.
Я использую Visual Studio 2010, и я пытаюсь запустить мои тесты в Firefox 3.6. Я уже установил необходимые компоненты для этой цели.
Проблема в том, что я хочу выбрать браузер, который я хочу использовать для тестирования своих приложений, поэтому я хочу изменить поле «currentBrowser», но я не могу иметь доступ к этому свойству, потому что это свойство статического члена.
Я попытался использовать библиотеку Reflection для доступа к объекту, но я не могу этого достичь.
Это пример моего текущего кода:
BrowserWindow browserWin = new BrowserWindow();
// Copy the dll
Assembly testAssembly = Assembly.LoadFile(@"c:\Microsoft.VisualStudio.TestTools.UITesting.dll");
// get type of class BrowserWindow from just loaded assembly
Type BrowserWindowType = testAssembly.GetType("Microsoft.VisualStudio.TestTools.UITesting.BrowserWindow");
object browserInstance = Activator.CreateInstance(BrowserWindowType, new object[] {});
PropertyInfo BrowserPropertyInfo = BrowserWindowType.GetProperty("CurrentBrowser");
//set value of property: public
BrowserPropertyInfo.SetValue(browserInstance,"FireFox", null);
// get value of property: public
string value = (string)BrowserPropertyInfo.GetValue(browserInstance, null);
Я также попробовал эту строку кода:
typeof(BrowserWindow).InvokeMember("set_CurrentBrowser", BindingFlags.InvokeMethod | BindingFlags.DeclaredOnly |BindingFlags.Public | BindingFlags.Static, null, bw, args,null,null,null);
Но значение свойства «currentBrowser» никогда не изменяется.
Нужны ли мне какие-то специальные разрешения? Может быть, что-то вроде «ReflectionPermission»
Большое спасибо