【发布时间】:2017-02-02 03:45:02
【问题描述】:
我无法弄清楚为什么访问 HTML 表上的第 0 行第 3 列不起作用。我正在使用 C# 和 Visual Studio。
在调试时,如果我们让它通过一次,然后将其设置回将其作为变量抓取的同一行,那么它将起作用。但从来没有第一次通过,如果我去第 1 行,第 3 列,作为下一个单元格,它会很好地抓住它,以此类推,除了第 1 行(索引 0)之外的任何其他单元格。
代码片段如下,但我们无法弄清楚为什么它不能专门处理第一行,我们甚至尝试添加延迟以确保页面已完全加载并且仍然没有返回任何值。提醒您,它适用于除第一行之外的每一行,即使第一行中的项目已更改。第一行第四列中的项目将始终更改,因此没有特定的类或标识符,我每次都可以访问它。
任何线索为什么它不适用于第一行以及任何修复将不胜感激。我有一个解决方法,但这样做会更容易:
using Microsoft.VisualStudio.TestTools.UITesting.HtmlControls;
var browser = BrowserWindow.Launch("https://blah.com/");
var cell = GetCell(browser, 2, 3);
Console.WriteLine(cell.Value.ToString());
HtmlCell GetCell(UITestControl parent, int row, int column)
{
var cell = new HtmlCell(parent);
cell.SearchProperties.Add(HtmlCell.PropertyNames.RowIndex, row.ToString());
cell.SearchProperties.Add(HtmlCell.PropertyNames.ColumnIndex, column.ToString());
return cell;
}
【问题讨论】:
-
你能发布一个html样本吗?这可能有助于弄清楚发生了什么。
-
您能否在
var cell = GetCell(browser, 0, 3);行之后放置一个断点(假设您尝试获取第 0 行第 3 列),然后查看返回的值是 null 还是抛出异常?另外我不确定行是 0 开始还是 1。 -
因为我为英特尔工作并且这类信息是机密的,我不能@fallenidol。行确实从 0 开始,当我索引为 1 时,它给了我第二行中的文本。它返回空值。它将贯穿整个过程,但输出将为空白,但在访问 1、3 或任何其他行时效果很好
-
明天我会看看我能做些什么来以一般形式提供有关 html 的更多信息。明天太平洋标准时间 2 点到 6 点之间发帖
-
请阅读minimal reproducible example。许多人发现创建minimal reproducible example 可以帮助他们自己解决问题。
标签: c# coded-ui-tests