之前有需求需要操作Chrome中的dom元素,没做过这个,但是网上关于这个方面的资料比较少,所以自己捣腾了几天,在知道.net中有这个玩意。

但是一百度,全是关于java,python的而c#的那是一个少。当然对其中的操作我还有很多不了解,这里我只是提出来c#是可以操作非IE的浏览器的。

  public override void LoadApplication()
{
#region MyRegion
Process[] processes = Process.GetProcessesByName("chromedriver");
for (int i = ; i < processes.Length; i++)
{
processes[i].Kill();
} //获取所有类为Chrome_WidgetWin_1的信息,如果打开了特定(单)病种质量监测系统,就直接返回
List<WindowInfo> listInfo= WindowOperate.GetAllDesktopWindows("Chrome_WidgetWin_1");
for (int i = ; 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 }

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

  1. Python脚本控制的WebDriver 常用操作 <二> 关闭浏览器

    下面将模拟一个WebDriver关闭浏览器的操作 测试用例场景 在一个自动化测试脚本运行完毕后,我们很可能会采取关闭浏览器的操作,而关闭浏览器的常用操作有如下两种: close quit close  ...

  2. webdriver 操作 Firefox 在关闭浏览器时弹出 “Plugin Container for Firefox已停止工作” 处理办法。

    上来先来一个图: 在使用webdriver操作Firefox浏览器的时候,一路顺畅.可是在最后关闭浏览器后,出现了如上面图示的警告!这个警告很早就出现了,因为也不影响测试结果,也就一直没理. 后来新搭 ...

  3. Python3 WebDriver操作cookie的方法

    Python3 WebDriver操作cookie的方法 WebDriver提供了操作Cookie的相关方法,可以读取.添加和删除cookie信息. WebDriver操作cookie的方法: get ...

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

    官方是支持在非微信内置浏览器中调起微信支付的!H5支付是基于公众号基础开发的一种非微信内浏览器支付方式(需要单独申请支付权限),可以满足在微信外的手机H5页面进行微信支付的需求.同时,由于H5链接传播 ...

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

    如何让ActiveXObject( "Microsoft.XmlDom ")对象在非IE浏览器下显示数据?firefox(火狐) 2013-09-10 16:01 2152人阅读 ...

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

    执行语句 console.log(new Date("2017-07-04 18:40").getTime()); 在IE浏览器中打印出:NAN 在非IE浏览器中打印出:14991 ...

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

    解决Uploadify上传控件在非IE浏览器中不工作,需要做如下2步修改: 1.Global.asax文件中,实现Application_BeginRequest函数: void Applicatio ...

  8. VS2010在非IE浏览器下调试Silverlight程序

    以Chrome为例: 第一步:在程序中设置断点. 第二步:右键点击web应用程序的起始页(.html或.aspx文件),选择"浏览方式",选中Chrome或其它非IE浏览器,点&q ...

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

    网上方法很多,例如,测试后得出以下结论,多余的话不说了,直入主题: 1.所有的推理IE浏览器 正解:此写法仅仅被lE浏览器识别,非IE浏览器不识别. <!--[if IE]> <st ...

随机推荐

  1. GJM :Unity集成Leap Motion

        Demo演示视频

  2. 五个典型的 JavaScript 面试题

    阅读原文 在IT界,需要大量的 JavaScript 开发者.如果你的能力能够胜任这一角色,那么你将获得许多更换工作和提高薪水的机会.但是在你被公司录取之前,你需要展现你的技术实力,以便通过面试环节. ...

  3. CSS3新特性应用之用户体验

    一.光标 新增加not-allowed光标,不允许访问 隐藏光标,在触模应用上很有用,css2.1需要一个透明的图片来实现,而css3直接用cursor:none即可. 完整代码: curosr: u ...

  4. 什么是WebPack,为什么要使用它?

    1.什么是Webpack WebPack可以看做是模块打包机:它做的事情是,分析你的项目结构,找到JavaScript模块以及其它的一些浏览器不能直接运行的拓展语言(Scss,TypeScript等) ...

  5. AlloyTouch全屏滚动插件发布--30秒搞定顺滑H5页

    原文链接:https://github.com/AlloyTeam/AlloyTouch/wiki/AlloyTouch-FullPage-Plugin 先验货 插件代码可以在这里找到. 注意,虽然是 ...

  6. HTTP 错误 404.3 - Not Found 由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本 ,请添加处理程序。如果下载文件,请添加 MIME 映射。 IIS站点中添加WCF项目后浏览网站报错解决方法。

    vs2013 wcf服务 windows10 家庭中文版 上图中的红色没有出现就按照下面的方法做: 按照上图所示勾选. 刷新上图中你的网站,查看上图右边的内容是否出现,如果出现,再次重新浏览网站,看一 ...

  7. iOS 汉字的拼音

    获取汉字的拼音 #import <Foundation/Foundation.h> @interface NSString (Utils) /** * 汉字的拼音 * * @return ...

  8. 十种MYSQL显错注入原理讲解(二)

    上一篇讲过,三种MYSQL显错注入原理.下面我继续讲解. 1.geometrycollection() and geometrycollection((select * from(select * f ...

  9. 靠谱的datatable转json方法

    今天有之前同事问我要datatable转json的方法,以前自己也弄过,但感觉网上有很多不靠谱的方法.所以自己在博客里记录一个,当然也是网上找的,但是这个靠谱一点,起码可以用不会报错,所以叫他靠谱的d ...

  10. CentOS安装gitlab,gerrit,jenkins并配置ci流程

    CentOS安装gitlab,gerrit,jenkins并配置ci流程 By Wenbin juandx@163.com 2016/4/9 这是我参考了网上很多的文档,配置了这三个软件在一个机器上, ...