C# 通過Selecnuim WebDriver操作非IE瀏覽器


之前有需求需要操作Chrome中的dom元素,沒做過這個,但是網上關於這個方面的資料比較少,所以自己搗騰了幾天,在知道.net中有這個玩意。

但是一百度,全是關於java,python的而c#的那是一個少。當然對其中的操作我還有很多不了解,這里我只是提出來c#是可以操作非IE的瀏覽器的。

  public override void LoadApplication()
       {
           #region MyRegion
           Process[] processes = Process.GetProcessesByName("chromedriver");
           for (int i = 0; i < processes.Length; i++)
           {
               processes[i].Kill();
           }

           //獲取所有類為Chrome_WidgetWin_1的信息,如果打開了特定(單)病種質量監測系統,就直接返回
               List<WindowInfo> listInfo=    WindowOperate.GetAllDesktopWindows("Chrome_WidgetWin_1");
               for (int i = 0; i < listInfo.Count; i++)
               {
                   if (listInfo[i].szWindowName != null)
                   {
                       IntPtr ptr = listInfo[i].hWnd;
                       if (listInfo[i].szWindowName.Contains("特定(單)病種質量監測系統"))
                       {
                           WindowOperate.ShowWindow(ptr, (int)WindowShowStatus.SW_RESTORE);
                           WindowOperate.SetForegroundWindow(ptr);
                           WindowOperate.ShowWindow(ptr, (int)WindowShowStatus.SW_SHOWNORMAL);
                           return;
                       }

                   }
               }
  
           string currtentPath = Application.StartupPath + "\\" + "chromedriver.exe";
           IWebDriver web = new ChromeDriver();
           hideConsole(currtentPath);
           web.Navigate().GoToUrl(str_LoginUrl);
           var username = web.FindElement(By.Id("UserName"));
           var password = web.FindElement(By.Id("Password"));
           username.SendKeys(this._loginName);
           password.SendKeys(this._password);
           var buttonLogin = web.FindElement(By.ClassName("btn"));
           buttonLogin.Click();         
           //測試          
           if (web.Url == "http://192.168.100.143/Account/Login")
           {
               var msg = web.FindElement(By.ClassName("vali-summary-phd"));
               string strmsg = msg.Text;
               if (strmsg == "提供的用戶名或密碼不正確。")
               {
                   //如果密碼錯誤,重新修改配置密碼
                   frmChangeExternalAppUser frmChangeExternalAppUser = new frmChangeExternalAppUser(this._appId, this._loginName, "單病種系統");
                   frmChangeExternalAppUser.ShowDialog();
                   if (frmChangeExternalAppUser.IsChanged)
                   {
                       this._loginName = frmChangeExternalAppUser.LoginName;
                       this._password = frmChangeExternalAppUser.Password;
                       this.LoadApplication();
                   }
               }
           }
           #endregion
         

        }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM