之前有需求需要操作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. python序列,字典备忘

    初识python备忘: 序列:列表,字符串,元组len(d),d[id],del d[id],data in d函数:cmp(x,y),len(seq),list(seq)根据字符串创建列表,max( ...

  2. AJAX表单提交以及数据接收

    ajax是一种传输方式,数据不是提交给ajax,而是 数据 由 ajax提交到后台(并不刷新页面) 要实现一个简单的ajax请求,要这3样东西,一个html页,一段js代码,一个可以响应请求的后台 这 ...

  3. Mysql(windows)安装

    h3 { color: rgb(255, 255, 255); background-color: rgb(30,144,255); padding: 3px; margin: 10px 0px } ...

  4. Exploitation with Social Engineering Toolkit SET

    下面演示如何使用S.E.T工具创建Payload并配置Armitage实现目标主机自动上线. 打开S.E.T工具选择第一项,进行Attacks配置. 选择4创建一个Payload和Listener. ...

  5. 沙盒SandBox

    每个App都有自己的沙盒,也就是一个存储空间.App之间没有权限访问对方的沙盒资源.沙盒的目录下有三个文件夹:Documents.Library.temp 目录结构 Documents:用于存储用户数 ...

  6. Newtonsoft.Json 自定义 解析协议

    在开发web api的时候 遇到一个要把string未赋值默认为null的情况改成默认为空字符串的需求 这种情况就需要自定义json序列话的 解析协议了 Newtonsoft.Json默认的解析协议是 ...

  7. 设置这些之后,Google突然可以打开了

    打开的是:https://www.google.com.hk

  8. C#初步应用

    首先,此次编程是第一次尝试结对编程,我的结对对象博客园地址:http://www.cnblogs.com/cbb111/ 他的源代码链接:https://coding.net/u/cao1417146 ...

  9. JavaScript线程机制

    浏览器的内核是多线程的,它们在内核制控下相互配合以保持同步,一个浏览器至少实现三个常驻线程:JS引擎线程(用于处理JS).GUI渲染线程(用于页面渲染).浏览器事件触发线程(用于控制交互). 除此之外 ...

  10. Event Handler

    在Event Handler中,有一种特殊的Event Handler,称之为Synchronizer或者Denormalizer,其作用就是为了同步“Query Database”.Query Da ...