将IwebElement传递到html敏捷包c#中

本文关键字:html IwebElement | 更新日期: 2023-09-27 18:07:21

我遇到了麻烦:

我有我公司的内部HTML。在这一页中,我有一个表。我想把HTML表格转换成c#中的数据表:

下面是我的代码:
IWebElement ie = driver.FindElement(By.XPath(".//*[@id='frmClaimSearch']/div[2]/div[1]/div/table"));
ie.GetAttribute("innerHTML");//get Element of the HTML
var doc = new HtmlDocument();
doc.Load("????");
var nodes = doc.DocumentNode.SelectNodes(".//*[@id='frmClaimSearch']/div[2]/div[1]/div/table/tr");
var table = new DataTable("MyTable");
var headers = nodes[0]
            .Elements("th")
            .Select(th => th.InnerText.Trim());
foreach (var header in headers)
{
    table.Columns.Add(header);
}
var rows = nodes.Skip(1).Select(tr => tr
            .Elements("td")
            .Select(td => td.InnerText.Trim())
            .ToArray());
foreach (var row in rows)
{
    table.Rows.Add(row);
}
@id='frmClaimSearch']/div[2]/div[1]/div/table/tr");
var table = new DataTable("MyTable is my XPath of Table.

但是这些代码行不起作用。我已经尽力了。请帮帮我。多谢。

将IwebElement传递到html敏捷包c#中

使用LoadHtml()方法代替Load()从HTML字符串填充HtmlDocument:

IWebElement ie = driver.FindElement(By.XPath(".//*[@id='frmClaimSearch']/div[2]/div[1]/div/table"));
string innerHtml = ie.GetAttribute("innerHTML");
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(innerHTML);
.......