结合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