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

        }
时间: 2024-11-02 22:48:10

C# 通过Selecnuim WebDriver操作非IE浏览器的相关文章

H5版如何在微信外(非微信浏览器)进行微信支付技术方案

官方是支持在非微信内置浏览器中调起微信支付的!H5支付是基于公众号基础开发的一种非微信内浏览器支付方式(需要单独申请支付权限),可以满足在微信外的手机H5页面进行微信支付的需求.同时,由于H5链接传播十分方便.来源不易追踪,商户需要特别注意做好防钓鱼.防刷单的处理,控制风险. 流程原理 接口说明 (1)用户打开商户H5网页选购商品,生成支付订单:(2)商户调用[统一下单]接口(接口中trade_type需定义为WAP),获得预支付交易会话标识prepayid:(3)商户按照微信H5支付协议生成d

WebDriver操作页面元素之单选按钮

在使用webdriver操作页面元素的时候经常会遇到一些单选按钮的情况,例如:注册时性别选择.单选按钮族中所有按钮共享同一个名称,所以浏览器知道将按钮组合在一起,通过选中其中一个按钮,其他按钮自动变为未选中状态. 示例代码: package com.seleniumdemo.webdriver; import static org.junit.Assert.*; import org.junit.After; import org.junit.Before; import org.junit.T

(转)如何让ActiveXObject( &quot;Microsoft.XmlDom &quot;)对象在非IE浏览器下显示数据?firefox(火狐)

如何让ActiveXObject( "Microsoft.XmlDom ")对象在非IE浏览器下显示数据?firefox(火狐) 2013-09-10 16:01 2152人阅读 评论(0) 收藏 举报 在IE浏览器下,xmlDom对象一般这样被定义: [html] view plaincopy var xmlDom= new ActiveXObject("Microsoft.XMLDOM"); 为了兼容Firefox,需要修改为: [html] view plai

IE浏览器与非IE浏览器JS日期兼容性问题处理

执行语句 console.log(new Date("2017-07-04 18:40").getTime()); 在IE浏览器中打印出:NAN 在非IE浏览器中打印出:1499164800000 执行语句 console.log(new Date("2017/07/04 18:40").getTime()); 在IE浏览器中打印出:1499164800000 在非IE浏览器中打印出:1499164800000 可见对于日期字符串最好用"/"连接

ASP.NET MVC 使用Jquery Uploadify 在非IE浏览器下Http Error的解决方案

解决Uploadify上传控件在非IE浏览器中不工作,需要做如下2步修改: 1.Global.asax文件中,实现Application_BeginRequest函数: void Application_BeginRequest(object sender, EventArgs e) { try { string session_param_name = "ASPSESSID"; string session_cookie_name = "ASP.NET_SessionId&

Web系统如何做到读取客户电脑MAC等硬件信息且兼容非IE浏览器

我们在实际Web应用中,可能会遇到“需要限定特定的电脑或用户才能使用系统”的问题. 对于一般情况来说,我们用得最多的可能是使用ActiveX控件的方法来实现,但此方案只适用于IE浏览器.为了能兼容不同的浏览器,如FireFox等,我们就需要考虑到一种比较通用的方法.此方法我们可以参考“在很多网站中,会在网页的某个地方给一个链接来直接启动QQ来聊天”.这种方法可以实现Web系统来调用客户端电脑的某个exe文件(前提是在客户端必须安装需调用的exe应用程序).QQ的解决方法是采用在OS中注册一种自定

CSS hack 如何区分所有IE浏览器和非IE浏览器

网上的方法很多,经过试验的如下结论,多余的话就不说了,直入主题: 1.判断所有IE浏览器 正解:此写法只被lE浏览器识别,非IE浏览器不识别. <!--[if IE]> <style type="text/css"> --/*具体的样式*/ </style> <![endif]--> 误解:以下写法IE和非IE浏览器都能识别 <!–[if IE]> <style type="text/css">

基于jQuery的让非HTML5浏览器支持placeholder属性的代码(转)

效果图:http://code.google.com/p/jquery-placeholder-js/ 演示代码:http://demo.jb51.net/js/2011/jqueryplaceholder/打包下载:http://xiazai.jb51.net/201105/yuanma/jqueryplaceholder.rar 基于jQuery的让非HTML5浏览器支持placeholder属性的代码(转),布布扣,bubuko.com

【转】Selenium2(WebDriver)总结(一)---启动浏览器、设置profile&amp;加载插件

基本读踩过的坑,泪流满面··· 本文主要记录下在使用selenium2/webdriver时启动各种浏览器的方法.以及如何加载插件.定制浏览器信息(设置profile)等 环境搭建可参考我的另一篇文章:http://www.cnblogs.com/puresoul/p/3483055.html 一.Driver下载地址: http://docs.seleniumhq.org/download/ 二.启动firefox浏览器(不需要下载驱动,原生支持) 1.firefox安装在默认路径下: 1 /