12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- using System;
- using System.Linq;
- using OpenQA.Selenium;
- namespace wispro.sp.utility
- {
- public class IPEasyUtility
- {
- public static void DownloadReport(string strId,string filename)
- {
- string strFileSavePath = ConfigHelper.GetSectionValue("IPEasySetting:DownloadFileSavePath");
- bool isheadless = (ConfigHelper.GetSectionValue("IPEasySetting:isHeadless") == "true");
- string Account = ConfigHelper.GetSectionValue("IPEasySetting:Account");
- string Password = ConfigHelper.GetSectionValue("IPEasySetting:Password");
- OpenQA.Selenium.Chrome.ChromeOptions options = new OpenQA.Selenium.Chrome.ChromeOptions();
- options.AddUserProfilePreference("download.default_directory", strFileSavePath);
- options.AddUserProfilePreference("intl.accept_languages", "nl");
- options.AddUserProfilePreference("disable-popup-blocking", "true");
- if (isheadless)
- {
- options.AddArgument("headless");
- }
- using (IWebDriver driver = new OpenQA.Selenium.Chrome.ChromeDriver(ConfigHelper.GetSectionValue("IPEasySetting:ChormeDriverPath"), options))
- {
- driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(50);
- driver.Manage().Timeouts().PageLoad = TimeSpan.FromSeconds(500);
- //进入登录界面
- driver.Navigate().GoToUrl("http://47.106.221.167/Login.aspx");
- //输入用户名和密码
- driver.FindElement(By.Id("txtUser")).SendKeys(Account);
- driver.FindElement(By.Id("txtPwd")).SendKeys(Password);
- //点击登录按钮
- driver.FindElement(By.Id("btnLogin")).Click();
- //关闭提示遮罩层
- driver.FindElement(By.Id("jpwClose")).Click();
- //点击顶部菜单栏中的报表管理菜单
- driver.FindElement(By.Name("970d33d5-c728-41b8-a060-4330610706b9")).Click();
- //点击左侧 自定义报表 菜单
- driver.FindElement(By.Name("642fa96f-1e1f-46fd-aaa4-cb461ee8df5b")).Click();
- //切换到自定义报表Frame
- driver.SwitchTo().Frame(1);
- //调用报表导出JS
- ((IJavaScriptExecutor)driver).ExecuteScript($"Report.Export('{strId}');");
- //切换到弹出的导出报表窗口,点击导出按钮
- driver.SwitchTo().DefaultContent();
- var ihg_export = driver.FindElement(By.Name("ihg_export"));
- driver.SwitchTo().Frame(ihg_export);
- driver.FindElement(By.Id("btnSubmit")).Click();
- string strFilePath = System.IO.Path.Combine(strFileSavePath, filename);
- while (true)
- {
- System.IO.FileInfo file = new System.IO.FileInfo(strFilePath);
- if (!file.Exists || file.Length == 0) {
- System.Threading.Thread.Sleep(5000);
- }
- else
- {
- break;
- }
- }
- }
- }
- }
- }
|