在Table Cell C#中设置ComboBox值

时间:2013-07-22 23:43:17

标签: c# datagridview combobox cell

我正在做的项目有点像机器人,我抓住我的应用程序的过程(它用于一些自动q&测试),然后在应用程序中添加值和编辑值,看看输出是否符合预期。

好吧,我已经得到了应用程序窗口(称为窗口),我正在寻找一个已添加到其他应用程序中的DataGridView项目。我知道它叫做“dataGridView1”,而我正在使用的UI界面(SpecFlow和White.Core)不支持从另一个应用程序中获取DataGridView项目

作为一种解决方法,我将DataGridView项目作为表格获取。 现在,问题。我试图在数据网格视图中设置该单元格的单元格值 包含一个ComboBox,Table不支持选择。每次我执行Cell.SetValue(字符串)时,它都会设置值临时,直到我在我的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);

    }

1 个答案:

答案 0 :(得分:0)

对于Q&amp; A自动化,我强烈建议使用Selenium ...您可以制作一个html脚本,或者在您的情况下使用C#应用程序运行它,并使用selenium指定

      driver.FindElement(By.XPath("//div[@id='Body']/form/div/div[2]/div[13]/div/div/div/div[2]/button")).Click();

     driver.FindElement(By.XPath("//a[contains(text(),'[add]')]")).Click();

如果它在css中你可以通过ID调用它...最好的部分是Selenium是开源的......或者也许在SpecFlow你可以指定一个CSS选择或XPath就像我在Selenium中所做的那样