问题描述
我目前正在自动化一个应用程序,并且有这个 Web 表,我需要检索特定列的信息,并将其存储在列表中。
目前我可以遍历列表的所有行,并且在每一行中,我可以遍历所有列。
该列如下所示:
ID26 Credit client1 10/10/2020 $2,222.00 $1,111.00 $1,111.00 $0.00
ID27 Credit client1 10/10/2020 $3,434.00 $2,121.00 $1,313.00 $0.00
ID28 Credit client1 10/10/2020 $4,543.00 $2,232.00 $2,311.00 $0.00
ID29 Credit client1 10/10/2020 $5,787.00 $2,647.00 $0.00
ID30 Credit client1 10/10/2020 $6,178.00 $3,298.00 $2,880.00 $0.00
ID31 Credit client1 10/10/2020 $7,398.00 $875.00 $6,523.00 $0.00
ID235 Credit client1 10/10/2020 $10,000.00 $2,000.00 $8,000.00 $0.00
我已经编写了这个方法来检索信息:
public static void GetColumnValues()
{
// xpath of html table
var elemTable = Driver.FindElement(By.XPath("/html/body/div/div/div[2]/div/div/div/div/div[2]/div/div/div/main/div/div[2]/div[1]/table[2]/tbody"));
// Fetch all Row of the table
List<IWebElement> lstTrElem = new List<IWebElement>(elemTable.FindElements(By.TagName("tr")));
String strRowData = "";
List<String> ColumnValues = new List<String>();
int RowsCounter = lstTrElem.Count();
Console.WriteLine("Rows are: " + RowsCounter);
// Traverse each row
foreach (var elemTr in lstTrElem)
{
// Fetch the columns from a particuler row
List<IWebElement> lstTdElem = new List<IWebElement>(elemTr.FindElements(By.TagName("td")));
if (lstTdElem.Count > 0)
{
// Traverse each column
foreach (var elemTd in lstTdElem)
{
// Tagname for the Posting Amount Column
var PostingAmountCol = Driver.FindElements(By.TagName("td"))[5];
// "\t\t" is used for Tab Space between two Text
strRowData = strRowData + elemTd.Text + "\t\t";
ColumnValues.Add(PostingAmountCol.Text);
}
}
else
{
// To print the data into the console
Console.WriteLine("This is Header Row");
Console.WriteLine(lstTrElem[0].Text.Replace(" ","\t\t"));
}
Console.WriteLine(strRowData);
strRowData = String.Empty;
}
Console.WriteLine(ColumnValues[0]);
Console.WriteLine(ColumnValues[1]);
Console.WriteLine(ColumnValues[2]);
Console.WriteLine(ColumnValues[3]);
Console.WriteLine(ColumnValues[4]);
Console.WriteLine(ColumnValues[5]);
Console.WriteLine(ColumnValues[6]);
}
问题是,在我运行它之后,它不是从列 [5] 中检索和存储所有值,而是只存储第一行的值,然后再次存储它,完全相同的值 (" $2,222.00") 用于所有循环,输出如下所示:
$2,222.00
$2,222.00
我不确定为什么会发生这种情况,是否有更好(或更简单)的方法来使用第 6 列中的数据完成列表?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)