2017-12-18 290 views
0

我曾经有以下代码以便以不同的用户身份运行驱动程序。DesiredCapabilities已过时

public static IWebDriver RunIEAsDifferentUser(string User,string Password) 
    { 

     var capabilitiesInternet = DesiredCapabilities.InternetExplorer(); 
     capabilitiesInternet.SetCapability("ignoreProtectedModeSettings", true); 
     capabilitiesInternet.SetCapability("EnsureCleanSession ", true); 
     RunAs("C:\\Exlporer/IEDriverServer.exe", User, Password); 
     _webdriverIE = new RemoteWebDriver(new Uri("http://localhost:5555/"), capabilitiesInternet, TimeSpan.FromSeconds(300)); 
     return _webdriverIE; 

    } 
    public static void RunAs(string path, string username, string password) 
    { 
     ProcessStartInfo myProcess = new ProcessStartInfo(path); 
     myProcess.UserName = username; 
     myProcess.Password = MakeSecureString(password); 
     myProcess.UseShellExecute = false; 
     myProcess.LoadUserProfile = true; 
     myProcess.Verb = "runas"; 
     myProcess.Domain = "DOM001"; 
     Process.Start(myProcess); 
    } 

    public static SecureString MakeSecureString(string text) 
    { 
     SecureString secure = new SecureString(); 
     foreach (char c in text) 
     { 
      secure.AppendChar(c); 
     } 

     return secure; 
    } 

的事情是,我收到警告:DesiredCapabilities is obsolete,我不知道我为了保住这个工作要做。

有问题的一行是:_webdriverIE = new RemoteWebDriver(new Uri("http://localhost:5555/"), capabilitiesInternet, TimeSpan.FromSeconds(300)); 我试过将它更改为InternetExplorerOptions caps = new InternetExplorerOptions();。 不幸的是,RemoteWebDriver现在只接受Icapabilities

回答

3

的解决方案是在警告消息

对于与Java远程服务器或网格的使用结束时,使用InternetExplorerOptions类的ToCapabilites方法。

InternetExplorerOptions options = new InternetExplorerOptions(); 
options.AddAdditionalCapability("ignoreProtectedModeSettings", true); 
options.AddAdditionalCapability("EnsureCleanSession", true); 
_webdriverIE = new RemoteWebDriver(new Uri("http://localhost:5555/"), options.ToCapabilities(), TimeSpan.FromSeconds(300)); 
+0

只是注意到它..谢谢反正! :-) –