结合Excel批量操作网页,模拟登陆

有这样一个场景,客户的一批账户密码保存在Excel中,需要逐一登录,进行某些操作

从头开始来的话很麻烦,读取Excel,安装Web控件,主要是控件操作没有很方便,有没有类似原始js调用、jqurey调用那样用C#操作网页?

这时可以用ExcelWeb脚本助手帮助完成

ExcelWeb脚本助手提供了Excel、浏览器操作的使用API,可以像操作Com那样操作Excel,操作js那样操作浏览器

打开Excel并遍历行:

模拟登陆:

代码和注释:

 1             var InfoFile = System.IO.Path.Combine(System.IO.Directory.GetCurrentDirectory(),"账户信息.xlsx");//Demo账户文件路径
 2             Workbook workbook =    Command.Excel.OpenExcel(InfoFile);//打开
 3             ExcelRowCollection rows =    workbook.ActiveSheet.Rows;//获取文件内的所有行
 4             
 5             var pageUrl = "file:///"+System.IO.Directory.GetCurrentDirectory()+"/chahua3318/login.html";//Demo网址路径
 6             for (int i = 2; i <= rows.Count; i++) {//遍历行
 7                 var RowItem = rows[i];
 8                 var page = Command.Browser.AddPage(pageUrl);
 9                 var nameElement = page.getElementById("name");
10                 var pwdElement = page.getElementById("pwd");
11                 nameElement.Value=RowItem.Cells["B"].Value.ToString();
12                 pwdElement.Value = RowItem.Cells["C"].Value.ToString();
13                 page.getElementById("login_sub").click();
14                 Wait();
15                 var 密码错误框= page.FindAlertForm("密码错误");
16                 if (密码错误框!=null) {
17                     RowItem.Cells["D"].Value="密码错误";
18                     密码错误框.Click();
19                 }else
20                 {
21                    var 房源管理 = page.getElementById("dleft_tab1_2_span");
22                    房源管理.click();
23                    Wait();
24                    
25                    var subIframe= page.GetIframe("right");
26                     var Text = subIframe.Query(".ui_flt").text();
27                     RowItem.Cells["E"].Value=Text;
28                 }
29             }    

  蓝奏云下载:https://aodi.lanzous.com/ipKawmp6lti

posted @ 2020-08-23 12:17  永远好风景  阅读(668)  评论(0编辑  收藏  举报