我正在做的项目有点像机器人,我抓取我的应用程序的进程(用于一些自动问答测试),然后在应用程序中添加值和编辑值,看看输出是否符合预期。
好吧,我已经获得了应用程序窗口(称为窗口),并且我正在寻找已添加到其他应用程序中的 DataGridView 项。我知道它叫做“dataGridView1”,我使用的 UI 界面(SpecFlow 和 White.Core)不支持从另一个应用程序中获取 DataGridView 项
作为一种解决方法,我将 DataGridView 项作为一个表来获取。现在,问题。我正在尝试在数据网格视图中设置一个单元格值,其中该单元格包含一个 ComboBox,该表不支持选择。每次我执行 Cell.SetValue(string) 时,它都会临时设置值,直到我在我的 UI 上导航
所以基本上,我的问题是,有什么方法可以设置表格单元格的值,该单元格应该是包含组合框的 DataGridView 单元格?我在代码中添加了一些我想要发生的注释
public void InsertValues(String price, String name)
{
//actually is the following
//DataGridView Data = window.Get<DataGridView>("dataGridView1");
//but this is not supported by the White.Core.UIItems.
Table Data = window.Get<Table>("dataGridView1");
int numRows = 0;
foreach (White.Core.UIItems.TableItems.TableRow tbr in Data.Rows)
numRows++;
//get the last row in the table
White.Core.UIItems.TableItems.TableRow leaseRow = Data.Rows[numRows - 1];
White.Core.UIItems.TableItems.TableCell PriceCell = leaseRow.Cells["price_val"];
White.Core.UIItems.TableItems.TableCell NameCell = leaseRow.Cells["name_val"];
//set the values of the various cells in the table
PriceCell.Click();
PriceCell.SetValue(pricingFormulaName);
PriceCell.Enter(pricingFormulaName);
NameCell.Click();
NameCell.SetValue(feeScheduleName);
NameCell.Enter(feeScheduleName);
}