|
@@ -193,9 +193,7 @@ namespace wispro.sp.utility
|
|
|
try
|
|
|
{
|
|
|
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(50));
|
|
|
- driver.Manage().Window.Maximize();
|
|
|
- driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(50);
|
|
|
- driver.Manage().Timeouts().PageLoad = TimeSpan.FromSeconds(100);
|
|
|
+
|
|
|
Login(driver, wait);
|
|
|
|
|
|
//点击顶部菜单栏中的案件管理菜单
|
|
@@ -233,7 +231,9 @@ namespace wispro.sp.utility
|
|
|
|
|
|
try
|
|
|
{
|
|
|
- var caseLink = driver.FindElement(By.XPath($"//a[contains(text(),'{caseNo}')]"));
|
|
|
+ var caseLink = wait.Until((d) => {
|
|
|
+ return d.FindElement(By.XPath($"//a[contains(text(),'{caseNo}')]"));
|
|
|
+ });
|
|
|
caseLink.Click();
|
|
|
}
|
|
|
catch(Exception ex)
|
|
@@ -342,7 +342,36 @@ namespace wispro.sp.utility
|
|
|
|
|
|
private static void Download(dynamic retObject, IWebDriver driver, WebDriverWait wait, IWebElement table_filelist, string fileType)
|
|
|
{
|
|
|
- var finallyFile = table_filelist.FindElement(By.XPath($"//td[@colname='file_desc'][normalize-space()='{fileType}']"));
|
|
|
+ var finallyFile = wait.Until((d) =>
|
|
|
+ {
|
|
|
+ try {
|
|
|
+ return table_filelist.FindElement(By.XPath($"//td[@colname='file_desc'][normalize-space()='{fileType}']"));
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ if(finallyFile == null)
|
|
|
+ {
|
|
|
+ switch (fileType)
|
|
|
+ {
|
|
|
+ case "新申请文档":
|
|
|
+ retObject.finallyFile = null;
|
|
|
+ break;
|
|
|
+ case "新申请第一次返稿":
|
|
|
+ retObject.firstReturnFile = null;
|
|
|
+ break;
|
|
|
+ case "新申请第一次内审":
|
|
|
+ retObject.draftFile = null;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
var tdfileName = wait.Until((d) =>
|
|
|
{
|
|
|
try
|
|
@@ -371,7 +400,8 @@ namespace wispro.sp.utility
|
|
|
switch (fileType)
|
|
|
{
|
|
|
case "新申请文档":
|
|
|
- retObject.finallyFile = filePath; break;
|
|
|
+ retObject.finallyFile = filePath;
|
|
|
+ break;
|
|
|
case "新申请第一次返稿":
|
|
|
retObject.firstReturnFile = filePath;
|
|
|
break;
|
|
@@ -410,9 +440,7 @@ namespace wispro.sp.utility
|
|
|
try
|
|
|
{
|
|
|
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(50));
|
|
|
- driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(50);
|
|
|
- driver.Manage().Timeouts().PageLoad = TimeSpan.FromSeconds(500);
|
|
|
-
|
|
|
+
|
|
|
Login(driver, wait);
|
|
|
|
|
|
//点击顶部菜单栏中的报表管理菜单
|
|
@@ -479,8 +507,12 @@ namespace wispro.sp.utility
|
|
|
{
|
|
|
options.AddArgument("headless");
|
|
|
}
|
|
|
-
|
|
|
- return new OpenQA.Selenium.Chrome.ChromeDriver(ConfigHelper.GetSectionValue("IPEasySetting:ChormeDriverPath"), options);
|
|
|
+ var driver = new OpenQA.Selenium.Chrome.ChromeDriver(ConfigHelper.GetSectionValue("IPEasySetting:ChormeDriverPath"), options);
|
|
|
+ driver.Manage().Window.Maximize();
|
|
|
+ driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(50);
|
|
|
+ driver.Manage().Timeouts().PageLoad = TimeSpan.FromSeconds(100);
|
|
|
+
|
|
|
+ return driver;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
@@ -500,11 +532,7 @@ namespace wispro.sp.utility
|
|
|
|
|
|
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(20));
|
|
|
|
|
|
- Log($"{DateTime.Now}\tIWebDriver配置");
|
|
|
- driver.Manage().Window.Maximize();
|
|
|
- driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(50);
|
|
|
- driver.Manage().Timeouts().PageLoad = TimeSpan.FromSeconds(500);
|
|
|
-
|
|
|
+
|
|
|
Login(driver, wait);
|
|
|
//点击顶部菜单栏中的报表管理菜单
|
|
|
Log($"{DateTime.Now}\t点击顶部菜单栏中的报表管理菜单");
|
|
@@ -713,9 +741,7 @@ namespace wispro.sp.utility
|
|
|
try
|
|
|
{
|
|
|
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(20));
|
|
|
- driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(5);
|
|
|
- driver.Manage().Timeouts().PageLoad = TimeSpan.FromSeconds(100);
|
|
|
-
|
|
|
+
|
|
|
Login(driver, wait);
|
|
|
|
|
|
//点击顶部菜单栏中的案件管理菜单
|
|
@@ -790,7 +816,6 @@ namespace wispro.sp.utility
|
|
|
dynamic retObject = new ExpandoObject();
|
|
|
|
|
|
retObject.CaseNo = caseNo.Trim();
|
|
|
- //retObject.DoItem = doItemName;
|
|
|
|
|
|
using (var Service = ChromeDriverService.CreateDefaultService(ConfigHelper.GetSectionValue("IPEasySetting:ChormeDriverPath")))
|
|
|
{
|
|
@@ -801,8 +826,6 @@ namespace wispro.sp.utility
|
|
|
try
|
|
|
{
|
|
|
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(20));
|
|
|
- driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(20);
|
|
|
- driver.Manage().Timeouts().PageLoad = TimeSpan.FromSeconds(100);
|
|
|
|
|
|
Login(driver,wait);
|
|
|
|
|
@@ -985,6 +1008,7 @@ namespace wispro.sp.utility
|
|
|
{
|
|
|
if (caseNo.StartsWith("APCN"))
|
|
|
{
|
|
|
+ //商标
|
|
|
return GetAPCNPerformanceRecord(caseNo, doItemName, caseStage);
|
|
|
}
|
|
|
|
|
@@ -1001,49 +1025,21 @@ namespace wispro.sp.utility
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
- driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(20);
|
|
|
- driver.Manage().Timeouts().PageLoad = TimeSpan.FromSeconds(100);
|
|
|
- //driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(100);
|
|
|
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(20));
|
|
|
|
|
|
- //进入登录界面
|
|
|
- driver.Navigate().GoToUrl(ConfigHelper.GetSectionValue("IPEasySetting:IPEasyWeb"));
|
|
|
-
|
|
|
- //输入用户名和密码
|
|
|
- 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();
|
|
|
-
|
|
|
- //try
|
|
|
- //{
|
|
|
- // var okBtn = driver.FindElement(By.ClassName("ui_state_highlight"));
|
|
|
- // if (okBtn != null && okBtn.TagName == "input")
|
|
|
- // {
|
|
|
- // okBtn.Click();
|
|
|
- // }
|
|
|
- //}
|
|
|
- //catch { }
|
|
|
+ Login(driver, wait);
|
|
|
|
|
|
//点击顶部菜单栏中的案件管理菜单
|
|
|
- driver.FindElement(By.Name("71A7CC35-F597-40E1-9FEF-BE622A3A3B63")).Click();
|
|
|
- System.Threading.Thread.Sleep(500);
|
|
|
+ waitGetElementByName(wait,"71A7CC35-F597-40E1-9FEF-BE622A3A3B63").Click();
|
|
|
|
|
|
//点击左侧 查询 菜单
|
|
|
- driver.FindElement(By.Name("c3266ab3-521a-4815-8aaf-7dd0bc5a76af")).Click();
|
|
|
+ waitGetElementByName(wait, "c3266ab3-521a-4815-8aaf-7dd0bc5a76af").Click();
|
|
|
|
|
|
-
|
|
|
- //System.Threading.Thread.Sleep(500);
|
|
|
+ driver.SwitchTo().Frame(1);
|
|
|
var inputSearch = wait.Until((d) =>
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
- //切换到自定义报表Frame
|
|
|
- d.SwitchTo().Frame(1);
|
|
|
return d.FindElement(By.Id("case_volume"));
|
|
|
}
|
|
|
catch
|
|
@@ -1052,13 +1048,10 @@ namespace wispro.sp.utility
|
|
|
}
|
|
|
|
|
|
});
|
|
|
- //切换到自定义报表Frame
|
|
|
- //driver.SwitchTo().Frame(1);
|
|
|
-
|
|
|
- //var inputSearch = driver.FindElement(By.Id("case_volume"));
|
|
|
+
|
|
|
inputSearch.SendKeys(caseNo.Trim());
|
|
|
|
|
|
- var btnSearch = driver.FindElement(By.Id("btn_Search"));
|
|
|
+ var btnSearch = waitGetElementById(wait,"btn_Search");
|
|
|
btnSearch.Click();
|
|
|
|
|
|
var caseLink = wait.Until((d) =>
|
|
@@ -1073,14 +1066,12 @@ namespace wispro.sp.utility
|
|
|
}
|
|
|
|
|
|
});
|
|
|
- //System.Threading.Thread.Sleep(500);
|
|
|
-
|
|
|
- //var caseLink = driver.FindElement(By.XPath($"//a[normalize-space()='{caseNo.Trim()}']"));
|
|
|
caseLink.Click();
|
|
|
- System.Threading.Thread.Sleep(500);
|
|
|
|
|
|
driver.SwitchTo().ParentFrame().SwitchTo().Frame(2);
|
|
|
- var DoItemLinks = driver.FindElements(By.XPath($"//td[@colname='ctrl_proc'][normalize-space()='{doItemName}']"));
|
|
|
+ var DoItemLinks = wait.Until((d) => {
|
|
|
+ return d.FindElements(By.XPath($"//td[@colname='ctrl_proc'][normalize-space()='{doItemName}']"));
|
|
|
+ });
|
|
|
if (DoItemLinks.Count > 0)
|
|
|
{
|
|
|
if (!string.IsNullOrEmpty(caseStage))
|
|
@@ -1098,10 +1089,8 @@ namespace wispro.sp.utility
|
|
|
retObject.DoPersons = DoItemLink.FindElement(By.XPath("following-sibling::td[8]")).Text; //处理人
|
|
|
retObject.DoItemMemo = DoItemLink.FindElement(By.XPath("following-sibling::td[9]")).Text; //处理事项备注
|
|
|
retObject.Reviewer = DoItemLink.FindElement(By.XPath("following-sibling::td[10]")).Text; //核稿人
|
|
|
-
|
|
|
- System.Threading.Thread.Sleep(4000);
|
|
|
+
|
|
|
DoItemLink.Click();
|
|
|
- //driver.ExecuteJavaScript("$(arguments[0]).click()", DoItemLink);
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
@@ -1118,10 +1107,7 @@ namespace wispro.sp.utility
|
|
|
retObject.DoItemMemo = DoItemLink.FindElement(By.XPath("following-sibling::td[9]")).Text; //处理事项备注
|
|
|
retObject.Reviewer = DoItemLink.FindElement(By.XPath("following-sibling::td[10]")).Text; //核稿人
|
|
|
|
|
|
- System.Threading.Thread.Sleep(4000);
|
|
|
-
|
|
|
DoItemLink.Click();
|
|
|
- //new WebDriverWait(driver, TimeSpan.FromSeconds(20)).Until(ExpectedConditions.ElementToBeClickable(DoItemLink)).Click();
|
|
|
|
|
|
}
|
|
|
}
|
|
@@ -1138,7 +1124,6 @@ namespace wispro.sp.utility
|
|
|
}
|
|
|
|
|
|
});
|
|
|
- //System.Threading.Thread.Sleep(500);
|
|
|
|
|
|
retObject.FinalizationDate = p_proc_finish_doc_date.GetAttribute("value"); //定稿日
|
|
|
retObject.ReturnDate = driver.FindElement(By.Id("p_proc_info__back_date")).GetAttribute("value"); //返稿日
|
|
@@ -1146,8 +1131,7 @@ namespace wispro.sp.utility
|
|
|
retObject.DoItemCoefficient = driver.FindElement(By.Id("p_proc_info__proc_coefficient")).GetAttribute("value"); //处理事项系数
|
|
|
retObject.WordCount = driver.FindElement(By.Id("p_proc_info__translate_count")).GetAttribute("value"); //翻译字数
|
|
|
|
|
|
-
|
|
|
- driver.FindElement(By.Id("libase")).Click();
|
|
|
+ waitGetElementById(wait, "libase").Click();
|
|
|
|
|
|
var p_case_info__case_name = wait.Until((d) =>
|
|
|
{
|
|
@@ -1161,7 +1145,6 @@ namespace wispro.sp.utility
|
|
|
}
|
|
|
|
|
|
});
|
|
|
- //System.Threading.Thread.Sleep(500);
|
|
|
retObject.CaseName = p_case_info__case_name.GetAttribute("value"); //案件名称
|
|
|
retObject.CustomerName = driver.FindElement(By.Id("p_case_info__customer_id")).GetAttribute("value"); //客户名称
|
|
|
retObject.BusinessType = driver.FindElement(By.Id("p_case_info__business_type_id")).GetAttribute("value"); //业务类型
|
|
@@ -1175,9 +1158,7 @@ namespace wispro.sp.utility
|
|
|
retObject.CaseMemo = driver.FindElement(By.Id("p_case_info__remark")).GetAttribute("value"); //案件备注
|
|
|
|
|
|
driver.FindElement(By.XPath($"//span[contains(text(),'扩展信息')]")).Click();
|
|
|
- //select[@id='p_case_info__case_coefficient_id']
|
|
|
retObject.CaseCoefficient = GetSelectText(driver.FindElement(By.Id("p_case_info__case_coefficient_id")));
|
|
|
-
|
|
|
|
|
|
|
|
|
}
|
|
@@ -1215,33 +1196,9 @@ namespace wispro.sp.utility
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
- driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(20);
|
|
|
- driver.Manage().Timeouts().PageLoad = TimeSpan.FromSeconds(100);
|
|
|
- //driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(100);
|
|
|
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(20));
|
|
|
|
|
|
- //进入登录界面
|
|
|
- driver.Navigate().GoToUrl(ConfigHelper.GetSectionValue("IPEasySetting:IPEasyWeb"));
|
|
|
-
|
|
|
- //输入用户名和密码
|
|
|
- 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();
|
|
|
-
|
|
|
- //try
|
|
|
- //{
|
|
|
- // var okBtn = driver.FindElement(By.ClassName("ui_state_highlight"));
|
|
|
- // if (okBtn != null && okBtn.TagName == "input")
|
|
|
- // {
|
|
|
- // okBtn.Click();
|
|
|
- // }
|
|
|
- //}
|
|
|
- //catch { }
|
|
|
+ Login(driver, wait);
|
|
|
|
|
|
//点击顶部菜单栏中的案件管理菜单
|
|
|
driver.FindElement(By.Name("71A7CC35-F597-40E1-9FEF-BE622A3A3B63")).Click();
|
|
@@ -1249,15 +1206,13 @@ namespace wispro.sp.utility
|
|
|
|
|
|
//点击左侧 查询 菜单
|
|
|
driver.FindElement(By.Name("FF4E1FF9-FE36-4F0F-99DF-81E60817722E")).Click();
|
|
|
-
|
|
|
-
|
|
|
- //System.Threading.Thread.Sleep(500);
|
|
|
+ driver.SwitchTo().Frame(1);
|
|
|
var inputSearch = wait.Until((d) =>
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
//切换到自定义报表Frame
|
|
|
- d.SwitchTo().Frame(1);
|
|
|
+
|
|
|
return d.FindElement(By.Id("case_volume"));
|
|
|
}
|
|
|
catch
|
|
@@ -1266,13 +1221,10 @@ namespace wispro.sp.utility
|
|
|
}
|
|
|
|
|
|
});
|
|
|
- //切换到自定义报表Frame
|
|
|
- //driver.SwitchTo().Frame(1);
|
|
|
-
|
|
|
- //var inputSearch = driver.FindElement(By.Id("case_volume"));
|
|
|
+
|
|
|
inputSearch.SendKeys(caseNo.Trim());
|
|
|
|
|
|
- var btnSearch = driver.FindElement(By.Id("btn_Search"));
|
|
|
+ var btnSearch = waitGetElementById(wait,"btn_Search");
|
|
|
btnSearch.Click();
|
|
|
|
|
|
var caseLink = wait.Until((d) =>
|
|
@@ -1287,21 +1239,23 @@ namespace wispro.sp.utility
|
|
|
}
|
|
|
|
|
|
});
|
|
|
- //System.Threading.Thread.Sleep(500);
|
|
|
-
|
|
|
- //var caseLink = driver.FindElement(By.XPath($"//a[normalize-space()='{caseNo.Trim()}']"));
|
|
|
caseLink.Click();
|
|
|
- System.Threading.Thread.Sleep(500);
|
|
|
|
|
|
driver.SwitchTo().ParentFrame().SwitchTo().Frame(2);
|
|
|
- var DoItemLinks = driver.FindElements(By.XPath($"//td[@colname='ctrl_proc'][normalize-space()='{doItemName}']"));
|
|
|
+ var DoItemLinks = wait.Until((d) => {
|
|
|
+ return driver.FindElements(By.XPath($"//td[@colname='ctrl_proc'][normalize-space()='{doItemName}']"));
|
|
|
+ });
|
|
|
+
|
|
|
if (DoItemLinks.Count > 0)
|
|
|
{
|
|
|
if (!string.IsNullOrEmpty(caseStage))
|
|
|
{
|
|
|
foreach (var DoItemLink in DoItemLinks)
|
|
|
{
|
|
|
- var temCaseStage = DoItemLink.FindElement(By.XPath("following-sibling::td[1]")).Text;
|
|
|
+ var temCaseStage = wait.Until((d) => {
|
|
|
+ return DoItemLink.FindElement(By.XPath("following-sibling::td[1]"));
|
|
|
+ }).Text;
|
|
|
+
|
|
|
if (temCaseStage == caseStage)
|
|
|
{
|
|
|
retObject.CaseStage = DoItemLink.FindElement(By.XPath("following-sibling::td[1]")).Text; //案件阶段
|
|
@@ -1313,7 +1267,6 @@ namespace wispro.sp.utility
|
|
|
retObject.DoItemMemo = DoItemLink.FindElement(By.XPath("following-sibling::td[9]")).Text; //处理事项备注
|
|
|
retObject.Reviewer = DoItemLink.FindElement(By.XPath("following-sibling::td[10]")).Text; //核稿人
|
|
|
|
|
|
- System.Threading.Thread.Sleep(4000);
|
|
|
DoItemLink.Click();
|
|
|
//driver.ExecuteJavaScript("$(arguments[0]).click()", DoItemLink);
|
|
|
break;
|
|
@@ -1332,7 +1285,6 @@ namespace wispro.sp.utility
|
|
|
retObject.DoItemMemo = DoItemLink.FindElement(By.XPath("following-sibling::td[10]")).Text; //处理事项备注
|
|
|
//retObject.Reviewer = DoItemLink.FindElement(By.XPath("following-sibling::td[10]")).Text; //核稿人
|
|
|
|
|
|
- System.Threading.Thread.Sleep(4000);
|
|
|
|
|
|
DoItemLink.Click();
|
|
|
//new WebDriverWait(driver, TimeSpan.FromSeconds(20)).Until(ExpectedConditions.ElementToBeClickable(DoItemLink)).Click();
|
|
@@ -1361,7 +1313,7 @@ namespace wispro.sp.utility
|
|
|
retObject.WordCount = driver.FindElement(By.Id("p_proc_info__translate_count")).GetAttribute("value"); //翻译字数
|
|
|
|
|
|
|
|
|
- driver.FindElement(By.Id("libase")).Click();
|
|
|
+ waitGetElementById(wait,"libase").Click();
|
|
|
|
|
|
var p_case_info__case_name = wait.Until((d) =>
|
|
|
{
|