具有相同类的多个iwebelement都指向第一个



我在c#中使用Selenium,试图将web上的表中的值获取到本地表中。

我得到所有的行使用:

var allTableRows = driver.FindElements(By.ClassName("table-row"));

我可以看到,allTableRows有多个不同的行,不同的ID和文本。但是,当我尝试遍历它们并使用

收集每行数据时:
foreach (var row in allTableRows)
{
var currentChange = new ChangeHistoryRow();
var date = row.FindElements(By.XPath("//cell"))[0]?.Text;
if (date != null)
{
currentChange.Date = date;
}
var time = row.FindElements(By.XPath("//cell"))[1]?.Text;
if (time != null)
{
currentChange.Time = time;
}

listOfChanges.Add(currentChange);
}

最终列表中的每一项都具有相同的数据,即第一行的数据。(即使原始表的每一行都有不同的日期/时间值)

没有额外的选择器可以使用,比如特定的id/类,所以我被迫使用一般规则(按类名行,然后每行中的单元格只在[0],[1],[2]等中不同)

我不确定为什么数据总是指向第一行,因为我们试图在foreach中获取特定行的元素。

var date = row.FindElements(By.XPath(".//cell"))[0]?.Text;

使用"。'在定位器前面,否则上下文将来自根。当你付出的时候。'它从父元素

搜索

最新更新