public void should_add_headings_in_a_header_row_to_the_thead() { var expected = getExpectedHtml("<tr><th>Heading 1</th><th>Heading 2</th></tr>", null, null); var tag = new TableTag(); var headerRow = tag.AddHeaderRow(); headerRow.Header().Text("Heading 1"); headerRow.Header("Heading 2"); tag.ToString().ShouldEqual(expected); }
public void check_thead_tbody_tfoot_access() { var expected = "<table><thead class=\"header\"></thead><tfoot class=\"footer\"></tfoot><tbody class=\"body\"></tbody></table>"; var table = new TableTag(); table.THead.AddClass("header"); table.TBody.AddClass("body"); table.TFoot.AddClass("footer").Render(true); System.Diagnostics.Trace.TraceInformation(table.ToString()); table.ToString().ShouldEqual(expected); }
public void add_caption_always_puts_the_caption_at_top() { var tag = new TableTag(); tag.CaptionText("some caption"); tag.Children[0].Text().ShouldEqual("some caption"); tag.Children[0].TagName().ShouldEqual("caption"); tag.CaptionText().ShouldEqual("some caption"); tag.CaptionText("other caption"); tag.CaptionText().ShouldEqual("other caption"); tag.Children.Count(x => x.TagName() == "caption").ShouldEqual(1); }
public void should_add_cells_to_rows_in_the_tbody() { var expected = getExpectedHtml(null, "<tr><td>cell 1</td><td>cell 2</td></tr><tr><td>cell 3</td><td>cell 4</td></tr>", null); var tag = new TableTag(); var bodyRow1 = tag.AddBodyRow(); bodyRow1.Cell().Text("cell 1"); bodyRow1.Cell("cell 2"); var bodyRow2 = tag.AddBodyRow(); bodyRow2.Cell("cell 3"); bodyRow2.Cell("cell 4"); tag.ToString().ShouldEqual(expected); }
/// <summary> /// 保存安全生产许可 /// </summary> /// <param name="table"></param> /// <param name="id"></param> /// <param name="url"></param> private void AddCorpSecLic(TableTag table, string id, string url) { for (int i = 1; i < table.RowCount; i++) { TableRow tr = table.Rows[i]; string SecLicCode = string.Empty, SecLicDesc = string.Empty, ValidStartDate = string.Empty, ValidStartEnd = string.Empty, SecLicUnit = string.Empty; SecLicCode = tr.Columns[0].ToNodePlainString(); ValidStartEnd = tr.Columns[1].ToPlainTextString().GetDateRegex(); SecLicUnit = tr.Columns[2].ToNodePlainString(); ValidStartDate = tr.Columns[3].ToPlainTextString().GetDateRegex(); if (string.IsNullOrEmpty(SecLicCode) && string.IsNullOrEmpty(ValidStartEnd) && string.IsNullOrEmpty(SecLicUnit) && string.IsNullOrEmpty(ValidStartDate)) { continue; } CorpSecLic seclic = ToolDb.GenCorpSecLic(id, SecLicCode, SecLicDesc, ValidStartDate, ValidStartEnd, SecLicUnit, url); ToolDb.SaveEntity(seclic, string.Empty); } }
private void writeProperties(Description description) { if (description.Properties.Any()) { var table = new TableTag(); table.AddClass("desc-properties"); description.Properties.Each((key, value) => { table.AddBodyRow(row => { row.Header(key); row.Cell(value); }); }); Append(table); } }
/// <summary> /// 保存资质 /// </summary> /// <param name="noList"></param> private void AddQual(TableTag table, string id, string url) { for (int i = 1; i < table.RowCount; i++) { TableRow tr = table.Rows[i]; string CorpId = string.Empty, QualName = string.Empty, QualCode = string.Empty, QualSeq = string.Empty, qualNum = string.Empty, QualType = string.Empty, QualLevel = string.Empty, ValidDate = string.Empty, LicDate = string.Empty, LicUnit = string.Empty; QualCode = tr.Columns[0].ToNodePlainString(); QualName = QualType = tr.Columns[1].ToNodePlainString(); QualLevel = tr.Columns[2].ToNodePlainString(); ValidDate = tr.Columns[3].ToPlainTextString().GetDateRegex(); LicDate = tr.Columns[4].ToPlainTextString().GetDateRegex(); LicUnit = tr.Columns[5].ToNodePlainString(); qualNum = QualLevel.GetLevel(); CorpQual qual = ToolDb.GenCorpQual(id, QualName, QualCode, QualSeq, QualType, QualLevel, ValidDate, LicDate, LicUnit, url, qualNum, "广东省", "佛山市"); ToolDb.SaveEntity(qual, string.Empty); } }
private void Init() { // Your recording specific initialization code goes here. Delay.Seconds(20); WebDocument webDocument1 = "/dom[@domain='192.168.0.1']"; webDocument1.WaitForDocumentLoaded(); // Delay.Seconds(40); // TableTag myTable1 = webDocument1.FindSingle("/dom[@domain='192.168.0.1']//table[#'portTriggeringTable']"); TableTag myTable1 = webDocument1.FindSingle("/dom[@domain='192.168.0.1']//table[#'PortForwardingTable']"); //R3.11 ///dom[@domain='192.168.0.1']//table[#'portTriggeringTable'] //Report.Screenshot("New Port Triggering Rule", myTable.Element,true); //highlight the new port triggering rule IList <TrTag> rows1 = myTable1.Find <TrTag>("./tbody//tr"); TotalRows = rows1.Count; Report.Info(" TotalRows(Before Add)", TotalRows.ToString()); }
/// <summary> /// 保存企业业绩 /// </summary> /// <param name="table"></param> /// <param name="id"></param> /// <param name="url"></param> private void AddCorpResults(TableTag table, string id, string url) { for (int i = 1; i < table.RowCount; i++) { string PrjName = string.Empty, PrjCode = string.Empty, BuildUnit = string.Empty, GrantDate = string.Empty, PrjAddress = string.Empty, ChargeDept = string.Empty, PrjClassLevel = string.Empty, PrjClass = string.Empty, BuildArea = string.Empty, InviteArea = string.Empty, ProspUnit = string.Empty, DesignUnit = string.Empty, SuperUnit = string.Empty, ConstUnit = string.Empty, PrjStartDate = string.Empty, PrjEndDate = string.Empty; TableRow tr = table.Rows[i]; PrjName = tr.Columns[1].ToNodePlainString(); GrantDate = tr.Columns[2].ToPlainTextString().GetDateRegex(); PrjStartDate = tr.Columns[5].ToPlainTextString().Replace(" ", ""); if (string.IsNullOrEmpty(PrjName) && string.IsNullOrEmpty(GrantDate) && string.IsNullOrEmpty(PrjStartDate)) { continue; } CorpResults result = ToolDb.GenCorpResults(id, PrjName, PrjCode, BuildUnit, GrantDate, PrjAddress, ChargeDept, PrjClassLevel, PrjClass, BuildArea, InviteArea, ProspUnit, DesignUnit, SuperUnit, ConstUnit, PrjStartDate, PrjEndDate, url); ToolDb.SaveEntity(result, string.Empty); } }
private void Init() { // Your recording specific initialization code goes here. Delay.Seconds(30); WebDocument webDocument1 = "/dom[@domain='192.168.0.1']"; webDocument1.WaitForDocumentLoaded(); // Delay.Seconds(30); TableTag myTable1 = webDocument1.FindSingle("/dom[@domain='192.168.0.1']//table[#'dhcpClientsTable']"); //dhcpClientsTable //dom[@domain='192.168.0.1']//table[#'dhcpClientsTable'] //Report.Screenshot("New Port Triggering Rule", myTable.Element,true); //highlight the new port triggering rule IList <TrTag> rows1 = myTable1.Find <TrTag>("./tbody//tr"); TotalRows = rows1.Count; //Report.Info("------Inside Init() of DHCP_Reservation_Add_Reservation ----- " ); Report.Info("TotalRows(Before):", TotalRows.ToString()); }
public static string WrapInNestedCenteringTable(string htmlString) { // ReSharper disable StringLiteralTypo var emailCenterTable = new TableTag(); emailCenterTable.Attr("width", "100%"); emailCenterTable.Attr("border", "0"); emailCenterTable.Attr("cellspacing", "0"); emailCenterTable.Attr("cellpadding", "0"); var emailCenterRow = emailCenterTable.AddBodyRow(); var emailCenterLeftCell = emailCenterRow.Cell(); emailCenterLeftCell.Attr("max-width", "1%"); emailCenterLeftCell.Attr("align", "center"); emailCenterLeftCell.Attr("valign", "top"); emailCenterLeftCell.Text(" ").Encoded(false); var emailCenterContentCell = emailCenterRow.Cell(); emailCenterContentCell.Attr("width", "100%"); emailCenterContentCell.Attr("align", "center"); emailCenterContentCell.Attr("valign", "top"); var emailCenterRightCell = emailCenterRow.Cell(); emailCenterRightCell.Attr("max-width", "1%"); emailCenterRightCell.Attr("align", "center"); emailCenterRightCell.Attr("valign", "top"); emailCenterRightCell.Text(" ").Encoded(false); // ReSharper restore StringLiteralTypo var outerTable = new TableTag(); emailCenterContentCell.Children.Add(outerTable); outerTable.Style("width", "100%"); outerTable.Style("max-width", "900px"); outerTable.TBody.Text(htmlString).Encoded(false); return(emailCenterTable.ToString()); }
/// <summary> /// 第二种页面:数据格式为文本 /// </summary> /// <returns></returns> public static string[] GetDataFromText(string link) { //定义一个数组存放需要的解析数据 string[] tempData = new string[6]; try { //过滤条件:添加第二次筛选条件 NodeFilter secondFilter = new AndFilter(new TagNameFilter("div"), new HasAttributeFilter("class", "nrl")); NodeList secondNodeList = GetNodeList(link, secondFilter); //获取目标div标签的子节点 secondNodeList = secondNodeList.ElementAt(0).Children; //开始解析需要的数据项 TableTag targetTable = (TableTag)secondNodeList[0]; //获取表中的所有行 TableRow[] tr = targetTable.Rows; //标题 tempData[0] = tr[0].ToPlainTextString().Trim(); //文章来源及更新时间 string temp = tr[1].ToPlainTextString().Trim(); int index1 = temp.IndexOf(':'); int index2 = temp.LastIndexOf(':'); tempData[1] = temp.Substring(index1 + 1, 3); temp = temp.Substring(index2 + 1).Trim(); int year, month, date; year = temp.LastIndexOf('年'); month = temp.LastIndexOf('月'); date = temp.LastIndexOf('日'); tempData[2] = temp.Substring(0, year) + "-" + temp.Substring(year + 1, month - year - 1) + temp.Substring(month + 1, date - month - 1); //网址 tempData[3] = link; //水位表 TableColumn[] tc = tr[3].Columns; tempData[4] = tc[0].ChildAt(2).ToHtml(); } catch (Exception ex) { Console.WriteLine("第二层解析出错啦" + ex.Message); tempData[5] = "failed"; } return(tempData); }
public int pfRules_Count() { Delay.Seconds(15); WebDocument webDocument1 = "/dom[@domain='192.168.0.1']"; webDocument1.WaitForDocumentLoaded(); // TableTag myTable1 = webDocument1.FindSingle("/dom[@domain='192.168.0.1']//table[#'portTriggeringTable']"); TableTag myTable1 = webDocument1.FindSingle("/dom[@domain='192.168.0.1']//table[#'PortForwardingTable']"); IList <TrTag> rows1 = myTable1.Find <TrTag>("./tbody//tr"); int TotalRows = rows1.Count; // Report.Info(" Total Rules",TotalRows.ToString()); int j = 1; bool isRuleExist = true; if (TotalRows > 0) { IList <TdTag> cols = myTable1.Find <TdTag>("./tbody//td"); foreach (TdTag col in cols) { //if(j == 1 && col.InnerText.StartsWith("No forwarding rule!")){ // R3.6 if (j == 1 && col.InnerText.StartsWith("No forwarding rule applied!")) { isRuleExist = false; //return; Report.Info(" There are no active port forwarding rules "); TotalRows = -1; break; } else { isRuleExist = true; break; } } if (isRuleExist) { Report.Info(" Total Rules", TotalRows.ToString()); } } return(TotalRows); }
protected void SaveAttach(string url, string sourceId) { List <BaseAttach> attach = new List <BaseAttach>(); string htmlAnnex = string.Empty; try { htmlAnnex = this.ToolWebSite.GetHtmlByUrl(url, Encoding.UTF8); } catch { } Parser dtparser = new Parser(new Lexer(htmlAnnex)); NodeList dtList = dtparser.ExtractAllNodesThatMatch(new AndFilter(new HasAttributeFilter("id", "ctl00_ContentPlaceHolder1_GridView1"), new TagNameFilter("table"))); if (dtList != null && dtList.Count > 0) { TableTag dttable = dtList[0] as TableTag; for (int t = 1; t < dttable.RowCount; t++) { ATag file = dttable.SearchFor(typeof(ATag), true)[t - 1] as ATag; if (file.IsAtagAttach()) { string aurl = "http://www.szjsjy.com.cn/" + file.Link.Replace("../", "").Replace("./", ""); try { BaseAttach entity = ToolHtml.GetBaseAttach(aurl, file.LinkText, sourceId, "SiteManage\\Files\\Attach\\"); if (entity != null) { attach.Add(entity); } } catch { } } } } if (attach.Count > 0) { string delSql = string.Format("delete from BaseAttach where SourceID='{0}'", sourceId); ToolFile.Delete(sourceId); int count = ToolDb.ExecuteSql(delSql); ToolDb.SaveDatas(attach, string.Empty); } }
private bool IsTableBid(TableTag table) { Parser tableparser = new Parser(new Lexer(table.ToHtml())); NodeList nodeList = tableparser.ExtractAllNodesThatMatch(new TagNameFilter("table")); if (nodeList != null && nodeList.Count > 1) { return(false); } for (int i = 0; i < table.RowCount; i++) { if (table.Rows[i].ToNodePlainString().Contains("中标供应商") || table.Rows[i].ToNodePlainString().Contains("成交供应商") || table.Rows[i].ToNodePlainString().Contains("中标单位")) { return(true); } } return(false); }
public static TableTag Write(LoggingSession session) { var table = new TableTag(); table.AddClass("table"); table.AddHeaderRow(r => { r.Header("Description"); r.Header("Provenance"); }); session.EachLog((target, log) => { table.AddBodyRow(row => { row.Add("td", td => { td.Append(new HtmlTag("h3").Text("Directive: " + PackagingDiagnostics.GetTypeName(target))); td.Append(new HtmlTag("h5").Text("Desc: " + target.ToString())); var time = new HtmlTag("h6").Text(log.TimeInMilliseconds.ToString() + "ms"); td.Append(time); }); row.Cell(log.Provenance); }); if (log.FullTraceText().IsNotEmpty()) { table.AddBodyRow(row => { row.Cell().Attr("colspan", "2").AddClass("log").Add("pre").Text(log.FullTraceText()); if (!log.Success) { row.AddClass("failure"); } }); } }); return(table); }
public HtmlDocument FullLog() { var table = new TableTag(); table.AddHeaderRow(r => { r.Header("Type"); r.Header("Description"); r.Header("Provenance"); r.Header("Timing"); }); PackageRegistry.Diagnostics.EachLog((target, log) => { table.AddBodyRow(row => { row.Cell(PackagingDiagnostics.GetTypeName(target)); row.Cell(target.ToString()); row.Cell(log.Provenance); row.Cell(log.TimeInMilliseconds.ToString()).AddClass("execution-time"); }); if (log.FullTraceText().IsNotEmpty()) { table.AddBodyRow(row => { row.Cell().Attr("colspan", "4").Add("pre").AddClass("log").Text(log.FullTraceText()); if (!log.Success) { row.AddClass("failure"); } }); } }); var document = DiagnosticHtml.BuildDocument(_urls, "Full Package Loading Log", table); return(document); }
/// <summary> /// /// </summary> /// <param name="obTag"></param> internal override void ConvertFromTag(ITag obTag) { base.ConvertFromTag(obTag); // // Get the rows from table. // TableTag obTableTag = obTag as TableTag; TableRow [] oRows = obTableTag.Rows; if (null != oRows) { Int32 iCount = oRows.Length; for (Int32 i = 0; i < iCount; i++) { RowData oRowData = new RowData(oRows[i], this); m_Rows.Add(oRowData); } } }
public void DealHtml(IList list, string html, bool crawlAll) { Parser parserDtl = new Parser(new Lexer(html)); NodeList aNodes = parserDtl.ExtractAllNodesThatMatch(new AndFilter(new TagNameFilter("table"), new HasAttributeFilter("id", "ctl00_Content_GridView1"))); if (aNodes != null && aNodes.Count > 0) { Type typs = typeof(ATag); TableTag table = aNodes[0] as TableTag; for (int t = 1; t < table.RowCount - 1; t++) { string InfoTitle = string.Empty, InfoType = string.Empty, PublistTime = string.Empty, InfoCtx = string.Empty, InfoUrl = string.Empty, htmlTxt = string.Empty, prjCode = string.Empty; TableRow tr = table.Rows[t] as TableRow; prjCode = table.Rows[t].Columns[1].ToNodePlainString(); InfoTitle = table.Rows[t].Columns[3].ToPlainTextString().Trim(); InfoType = "变更公示"; PublistTime = table.Rows[t].Columns[6].ToPlainTextString().Trim(); InfoUrl = SiteUrl; InfoCtx = "工程编号:" + table.Rows[t].Columns[1].ToPlainTextString().Trim() + "\n"; InfoCtx += "工程名称:" + table.Rows[t].Columns[2].ToPlainTextString().Trim() + "\n"; InfoCtx += "变更标题:" + table.Rows[t].Columns[3].ToPlainTextString().Trim() + "\n"; InfoCtx += "变更类型:" + table.Rows[t].Columns[4].ToPlainTextString().Trim() + "\n"; InfoCtx += "变更内容:" + table.Rows[t].Columns[5].ToPlainTextString().Trim() + "\n"; InfoCtx += "发布时间:" + table.Rows[t].Columns[6].ToPlainTextString().Trim() + "\n"; htmlTxt = InfoCtx; NoticeInfo info = ToolDb.GenNoticeInfo("广东省", "深圳市工程", string.Empty, string.Empty, InfoTitle, InfoType, InfoCtx, PublistTime, string.Empty, "深圳市建设工程交易中心", InfoUrl, prjCode, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, htmlTxt); list.Add(info); if (!crawlAll && list.Count >= this.MaxCount) { return; } } } }
public void Choose_Manual_Channel_2GHz(string argument1) { Report.Info("Channel Number(2GHz) : " + argument1); int channelNumber = Int32.Parse(argument1.Trim()); if (channelNumber < 52) { Delay.Seconds(5); WebDocument webDocument = "/dom[@domain='192.168.0.1']"; //Ranorex.SelectTag protocolTag = webDocument.FindSingle("/dom[@domain='192.168.0.1']//select[#'IPv4ProtocolGrp']"); //Ranorex.SelectTag protocolTag = webDocument.FindSingle("/dom[@domain='192.168.0.1']//select[#'WirelessMode50']"); //Ranorex.SelectTag protocolTag = webDocument.FindSingle("/dom[@domain='192.168.0.1']//select[#'WirelessMode24']"); //Ranorex.SelectTag protocolTag = webDocument.FindSingle("/dom[@domain='192.168.0.1']//select[#'Channel50']"); Ranorex.SelectTag protocolTag = webDocument.FindSingle("/dom[@domain='192.168.0.1']//select[#'Channel24']"); //dom[@domain='192.168.0.1']//select[#'WiFi24ChannelBW'] //dom[@domain='192.168.0.1']//select[#'WiFi50ChannelBW'] foreach (Ranorex.OptionTag optTag in protocolTag.Find(".//option")) { Report.Info(optTag.InnerText); string tempChannel = " Channel " + argument1.Trim(); Report.Info("tempChannel : " + tempChannel); // if(optTag.InnerText.Trim() == argument1.Trim()){ if (optTag.InnerText.Trim() == tempChannel.Trim()) { Report.Info("2GHz Matching-True"); optTag.Selected = true; break; } } //captute screen shot //TableTag myTable = webDocument.FindSingle("/dom[@domain='192.168.0.1']//table[#'ipv4FilterTable']"); TableTag table_2GHz = webDocument.FindSingle("/dom[@domain='192.168.0.1']//div[#'WirelessFrequency24GHz']/table"); Report.Screenshot("Wireless_2.4GHz", table_2GHz.Element, false); } else { Report.Info("DFS channel value is >= 52"); //call another module deal with this } }
/// <summary> /// Verify the records in Table /// </summary> /// <param name="ObjTable">TableTag Object</param> /// <param name="strCellData">Values To Verify in Table</param> /// <returns>Bool Value</returns> public static bool VerifyRecordInTable(TableTag ObjTable, params string[] strCellData) { bool flag = false; bool TestFlag = false; string strCellValue = null; try { foreach (var item in strCellData) { foreach (TrTag tr in ObjTable.Find(".//tr")) { foreach (TdTag td in tr.Find(".//td")) { strCellValue = td.InnerText.ToString(); if (strCellValue == item.ToString() || strCellValue.Contains(item.ToString())) { flag = true; TestFlag = true; break; } } if (TestFlag == true) { break; } } if (flag == false) { break; } } } catch (Exception ex) { Report.Info("Fail to VerifyrecordInTable ", ex.Message); } return(flag); }
void Count_MAC_Filtering_Lists() { //count total number of port triggering rules // Report.Info("---- Count_MAC_Filtering_Lists -----"); int TotalRows = 0; WebDocument webDocument1 = "/dom[@domain='192.168.0.1']"; webDocument1.WaitForDocumentLoaded(); Delay.Seconds(40); //TableTag myTable1 = webDocument1.FindSingle("/dom[@domain='192.168.0.1']//table[#'macAddressFilterTable']"); TableTag myTable1 = webDocument1.FindSingle("/dom[@domain='192.168.0.1']//table[#'macFilterTable']"); IList <TrTag> rows1 = myTable1.Find <TrTag>("./tbody//tr"); TotalRows = rows1.Count; // if it is just 1 row need to check if it is an invalid filter // Report.Info("---- Total rows : " + TotalRows); if (TotalRows == 1) { IList <TdTag> cols = myTable1.Find <TdTag>("./tbody//td"); foreach (TdTag MacCol in cols) { //Report.Info("Column",j.ToString()); Report.Info(MacCol.InnerText); if (MacCol.InnerText.ToString().StartsWith("No MAC filtering rule")) //No MAC filtering rule! --R3.8 // No MAC filtering rule! //Report.Info("No MAC filtering rule exists !!!"); // Report.Failure("Wireless_Filter ","No MAC filtering rule!!"); { Report.Success("Wireless_Filter ", "No MAC filtering rule!!"); return; } else { break; } } } Report.Info("MAC_Filtering", TotalRows.ToString()); }
public void smoke_test_document_with_tags() { var document = new HtmlDocument(); document.Body.Add("h1").Text("Hello"); var table = new TableTag(); table.AddHeaderRow(row => { row.Header("a"); row.Header("b"); }); table.AddBodyRow(row => { row.Cell("1"); row.Cell("2"); }); Console.WriteLine(document.ToString()); }
public void Choose_Channel_Width_2GHz(string argument1) { Delay.Seconds(5); WebDocument webDocument = "/dom[@domain='192.168.0.1']"; Report.Info("Protocol(argument1) : " + argument1); //Ranorex.SelectTag protocolTag = webDocument.FindSingle("/dom[@domain='192.168.0.1']//select[#'Channel24']"); Ranorex.SelectTag protocolTag = webDocument.FindSingle("/dom[@domain='192.168.0.1']//select[#'WiFi24ChannelBW']"); foreach (Ranorex.OptionTag optTag in protocolTag.Find(".//option")) { Report.Info(optTag.InnerText); if (optTag.InnerText.Trim() == argument1.Trim()) { Report.Info("2_4GHz Matching-True"); optTag.Selected = true; break; } } TableTag table_2GHz = webDocument.FindSingle("/dom[@domain='192.168.0.1']//div[#'WirelessFrequency24GHz']/table"); Report.Screenshot("Wireless_2.4GHz", table_2GHz.Element, false); }
private HtmlTag tableForSerializer <T>() { var table = new TableTag(); table.AddHeaderRow(row => { row.Header("Index"); row.Header("Bulk Insert"); row.Header("Batch Update"); row.Header("Command per Document"); }); table.AddBodyRow(row => { row.Cell("No Index"); row.Cell(timeFor <T, NoIndexes, BulkInserts>().ToString()).Style("align", "right"); row.Cell(timeFor <T, NoIndexes, BatchUpdates>().ToString()).Style("align", "right"); row.Cell(timeFor <T, NoIndexes, MultipleCommands>().ToString()).Style("align", "right"); }); table.AddBodyRow(row => { row.Cell("Duplicated Field w/ Index"); row.Cell(timeFor <T, IndexedDuplicatedField, BulkInserts>().ToString()).Style("align", "right"); row.Cell(timeFor <T, IndexedDuplicatedField, BatchUpdates>().ToString()).Style("align", "right"); row.Cell(timeFor <T, IndexedDuplicatedField, MultipleCommands>().ToString()).Style("align", "right"); }); table.AddBodyRow(row => { row.Cell("Gin Index on Json"); row.Cell(timeFor <T, WithGin, BulkInserts>().ToString()).Style("align", "right"); row.Cell(timeFor <T, WithGin, BatchUpdates>().ToString()).Style("align", "right"); row.Cell(timeFor <T, WithGin, MultipleCommands>().ToString()).Style("align", "right"); }); return(table); }
public void ModemMode_Device_Info() {//validate modem - Hub 3.0 device information /* * Standard specification compliant: DOCSIS 3.0 * Hardware version: 10 * Software version: 9.1.116.608 * Cable MAC address: C0:05:C2:46:17:0B * Cable modem serial number: AAAP60920652 * System up time: 0 days 1h:1m:49s * Network access: Allowed */ Report.Info(" Hub 3.0 device information - Modem Mode "); // /dom[@caption='Hub 3.0' and @page='' and @path='/' and @browsername='IE' and @pageurl='http://192.168.100.1/?device_status&mid=Info']//div[#'Hub 3.0 device information']/table // common_table_2 Delay.Seconds(15); WebDocument webDocument = "/dom[@domain='192.168.100.1']"; // TableTag myTable = webDocument.FindSingle("/dom[@caption='Hub 3.0' and @page='' and @path='/' and @browsername='IE' and @pageurl='http://192.168.100.1/?device_status&mid=Info']//div[#'Hub 3.0 device information']//table[#'common_table_2']"); TableTag myTable = webDocument.FindSingle("/dom[@caption='Hub 3.0' and @page='' and @path='/' and @browsername='IE' and @pageurl='http://192.168.100.1/?device_status&mid=Info']//div[#'Hub 3.0 device information']/table"); IList <TrTag> rows = myTable.Find <TrTag>("./tbody//tr"); int rowsCnt = rows.Count; Report.Info("Total Rules(RowsCnt)-Now :", rowsCnt.ToString()); }
private void Init() { // Your recording specific initialization code goes here. Delay.Seconds(30); WebDocument webDocument1 = "/dom[@domain='192.168.0.1']"; webDocument1.WaitForDocumentLoaded(); TableTag myTable1 = webDocument1.FindSingle("/dom[@domain='192.168.0.1']//table[#'PortForwardingTable']"); // As per R3.11 (9.1.116BA) // TableTag myTable1 = webDocument1.FindSingle("/dom[@domain='192.168.0.1']//table[#'portTriggeringTable']"); //As per R3.5 (9.1.116J) //Report.Screenshot("New Port Triggering Rule", myTable.Element,true); //highlight the new port triggering rule IList <TrTag> rows1 = myTable1.Find <TrTag>("./tbody//tr"); TotalRows = rows1.Count; //Report.Info("------Inside Init()------ TotalRows(init)----- : " ,TotalRows.ToString()); Report.Info("TotalRules(Before)", TotalRows.ToString()); IList <TdTag> cols = myTable1.Find <TdTag>("./tbody//td"); colCnts = cols.Count; Report.Info("colCnts :", colCnts.ToString()); }
protected void AddCorpPrompt(CorpInfo info, string infoUrl) { string htmldtl = string.Empty; try { htmldtl = ToolWeb.GetHtmlByUrl(infoUrl); } catch { } Parser parser = new Parser(new Lexer(htmldtl)); NodeList nodeList = parser.ExtractAllNodesThatMatch(new TagNameFilter("table")); if (nodeList != null && nodeList.Count > 0) { TableTag table = nodeList[0] as TableTag; for (int i = 1; i < table.RowCount; i++) { if (table.Rows[i].ColumnCount <= 1) { break; } string prov = string.Empty, city = string.Empty, area = string.Empty, corpId = string.Empty, RecordCode = string.Empty, RecordName = string.Empty, RecordInfo = string.Empty, ImplUnit = string.Empty, BeginDate = string.Empty, InfoUrl = string.Empty; bool IsGood = false; TableRow tr = table.Rows[i]; RecordCode = tr.Columns[0].ToNodePlainString(); RecordName = tr.Columns[1].ToNodePlainString(); RecordInfo = tr.Columns[2].ToNodePlainString(); ImplUnit = tr.Columns[3].ToNodePlainString(); BeginDate = tr.Columns[4].ToPlainTextString().GetDateRegex(); CorpPrompt corp = ToolDb.GetCorpPrompt(info.Province, info.City, "", info.Id, RecordCode, RecordName, RecordInfo, ImplUnit, BeginDate, IsGood, infoUrl); ToolDb.SaveEntity(corp, string.Empty); } } }
public static TableTag Write(LoggingSession session) { var table = new TableTag(); table.AddHeaderRow(r => { r.Header("Type"); r.Header("Description"); r.Header("Provenance"); r.Header("Timing"); }); session.EachLog((target, log) => { table.AddBodyRow(row => { row.Cell(PackagingDiagnostics.GetTypeName(target)); row.Cell(target.ToString()); row.Cell(log.Provenance); row.Cell(log.TimeInMilliseconds.ToString()).AddClass("execution-time"); }); if (log.FullTraceText().IsNotEmpty()) { table.AddBodyRow(row => { row.Cell().Attr("colspan", "4").Add("pre").AddClass("log").Text(log.FullTraceText()); if (!log.Success) { row.AddClass("failure"); } }); } }); return(table); }
private async Task <CloudTable> GetTableAsync(string name, bool createIfNotExists) { if (name == null) { throw new ArgumentNullException(nameof(name)); } if (!TableNameRgx.IsMatch(name)) { throw new ArgumentException(@"invalid table name: " + name, nameof(name)); } bool cached = TableNameToTableTag.TryGetValue(name, out TableTag tag); if (!cached) { tag = new TableTag { Table = _client.GetTableReference(name), }; tag.Exists = await tag.Table.ExistsAsync(); TableNameToTableTag[name] = tag; } if (!tag.Exists && createIfNotExists) { await tag.Table.CreateAsync(); tag.Exists = true; } if (!tag.Exists) { return(null); } return(tag.Table); }
/// <summary> /// 企业安全许可 /// </summary> /// <param name="info"></param> /// <param name="html"></param> protected void AddCorpSecLic(CorpInfo info, string html) { Parser parser = new Parser(new Lexer(html)); NodeList nodeList = parser.ExtractAllNodesThatMatch(new AndFilter(new TagNameFilter("div"), new HasAttributeFilter("id", "aqsc"))); if (nodeList != null && nodeList.Count > 0) { parser = new Parser(new Lexer(nodeList.ToHtml().Replace("th", "td"))); NodeList tableNode = parser.ExtractAllNodesThatMatch(new TagNameFilter("table")); if (tableNode != null && tableNode.Count > 0) { TableTag table = tableNode[0] as TableTag; for (int i = 1; i < table.RowCount; i++) { TableRow tr = table.Rows[i]; if (tr.Columns[0].ToPlainTextString().Contains("没有显示结果")) { break; } string SecLicCode = string.Empty, SecLicDesc = string.Empty, ValidStartDate = string.Empty, ValidStartEnd = string.Empty, SecLicUnit = string.Empty; SecLicCode = tr.Columns[1].ToNodePlainString(); SecLicDesc = tr.Columns[2].ToNodePlainString(); ValidStartDate = tr.Columns[3].ToPlainTextString().GetDateRegex(); ValidStartEnd = tr.Columns[4].ToPlainTextString().GetDateRegex(); SecLicUnit = tr.Columns[5].ToNodePlainString(); if (Encoding.Default.GetByteCount(SecLicDesc) > 1000) { SecLicDesc = string.Empty; } CorpSecLic seclic = ToolDb.GenCorpSecLic(info.Id, SecLicCode, SecLicDesc, ValidStartDate, ValidStartEnd, SecLicUnit, info.Url); ToolDb.SaveEntity(seclic, string.Empty); } } } }
public void AddExpert(string html, string infourl, string id) { Parser parser = new Parser(new Lexer(html)); NodeList nodelist = parser.ExtractAllNodesThatMatch(new AndFilter(new HasAttributeFilter("id", "ctl00_ContentPlaceHolder1_GridView1"), new TagNameFilter("table"))); if (nodelist != null && nodelist.Count > 0) { string bBidProjectId = string.Empty, bExpertname = string.Empty, bBidtype = string.Empty, bExpertspec = string.Empty, bExpertunit = string.Empty, bRemark = string.Empty, bInfourl = string.Empty, bCreator = string.Empty, bCreatetime = string.Empty, bLastmodifier = string.Empty, bLastmodifytime = string.Empty; TableTag table = nodelist[0] as TableTag; for (int i = 1; i < table.RowCount; i++) { TableRow tr = table.Rows[i]; bExpertname = tr.Columns[0].ToPlainTextString(); bBidtype = tr.Columns[1].ToPlainTextString(); bExpertspec = tr.Columns[2].ToPlainTextString(); bExpertunit = tr.Columns[3].ToPlainTextString(); BidProjectExpert info = ToolDb.GenProjectExpert(id, bExpertname, bBidtype, bExpertspec, bExpertunit, string.Empty, infourl); ToolDb.SaveEntity(info, ""); } } }
public string ToHtml() { var table = new TableTag(); table.AddClass("table"); table.AddClass("table-striped"); table.AddHeaderRow(row => { row.Header("Details"); row.Header("Duration (ms)"); row.Header("Method"); row.Header("Endpoint"); row.Header("Status"); row.Header("Content Type"); }); _logs.Each(log => { var url = _runtime.BaseAddress.TrimEnd('/') + "/_fubu/#/fubumvc/request-details/" + log.Id; table.AddBodyRow(row => { row.Cell().Add("a").Text("Details").Attr("href", url).Attr("target", "_blank"); row.Cell(log.ExecutionTime.ToString()).Attr("align", "right"); var summary = new HttpRequestSummary(log); row.Cell(summary.method); row.Cell(log.Title()); row.Cell(summary.status.ToString()); row.Cell(summary.contentType); }); }); return(table.ToString()); }
public static HtmlTag WriteBehaviorChainTable(IEnumerable <BehaviorChain> chains, params IColumn[] columns) { var table = new TableTag(); table.Attr("cellspacing", "0"); table.Attr("cellpadding", "0"); table.AddHeaderRow(row => { columns.Each(c => row.Header(c.Header())); }); chains.Each(chain => { table.AddBodyRow(row => { columns.Each(col => { col.WriteBody(chain, row, row.Cell()); }); }); }); return(table); }