【问题标题】:How do I test an excel spreadsheet with WIndows Application driver如何使用 Windows 应用程序驱动程序测试 Excel 电子表格
【发布时间】:2019-06-29 20:20:39
【问题描述】:

我已运行 Windows 应用程序驱动程序“计算器测试”示例应用程序。 现在,我想用 Excel 电子表格替换 Windows 标准计算器。

我想将值插入电子表格并检索结果。

我查看了 Github 上的源代码,但无法识别对计算器应用程序的调用,也不知道对 Excel exe 的相关调用是什么。

我需要了解如何启动 Excel,将值插入 Excel,然后从 Excel 电子表格的预设单元格中检索值。

谢谢

【问题讨论】:

  • 您需要了解如何启动 Excel?
  • 我将重复我认为您正在尝试做的事情,您可以纠正我。您想编写一个启动 Excel 的桌面应用程序,并允许该应用程序将内容写入某些单元格(我猜是数字和公式),然后让 Excel 计算引擎完成它的工作,当 Excel 完成计算时,您想从其他 Excel 单元格中提取结果。那是对的吗?您是否查看过其他可能的解决方案来解决您的问题? Excel 有很多扩展点,但我不知道你如何做到这一点。
  • 您找不到对计算器的调用?它们在这里:github.com/Microsoft/WinAppDriver/blob/master/Samples/C%23/… 这不是一个“调用”:它正在寻找一个 UI 元素(例如 Button)并与之交互(例如单击它)
  • @Flydog57 可能是正确的。这可能是 XY 问题。您想学习测试自动化还是想自动化 Excel?这是一个很大的不同。
  • @Weller @ Flydog5 我想对 Excel 做 CalculatorTest 对 Windows 计算器所做的事情。我使用自动化来测试应用程序和网站,我认为我可以做得很好,但找不到执行此操作的命令

标签: c# excel windows selenium automation


【解决方案1】:

嗯,我决定手动测试 excel 电子表格。我可以手动快速完成的事情变得越来越复杂。谢谢大家的帮助。

【讨论】:

    【解决方案2】:

    例子:

    private Microsoft.Office.Interop.Excel.Application ObjExcel;
            private Microsoft.Office.Interop.Excel.Workbook ObjWorkBook;
            private Microsoft.Office.Interop.Excel.Worksheet ObjWorkSheet;
    
    string fileName = System.Windows.Forms.Application.StartupPath + "\\" + textBox1.Text + ".xlsx";
                MessageBox.Show(fileName);
                try
                {
                    ObjExcel = new Microsoft.Office.Interop.Excel.Application();
    
                    ObjWorkBook = ObjExcel.Workbooks.Add(System.Reflection.Missing.Value);
    
                    ObjWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)ObjWorkBook.Sheets[1];
    
    
                    for (int i = 0; i < dataGridView1.Rows.Count; i++)
                    {
                        DataGridViewRow row = dataGridView1.Rows[i]; 
                        for (int j = 0; j < row.Cells.Count; j++) 
                        {ObjExcel.Cells[1, 1]="id";
                    ObjExcel.Cells[1, 1]="column";
                    ObjExcel.Cells[1, 2]="column";
                    ObjExcel.Cells[1, 3]="column";
                            ObjExcel.Cells[i + 1, j + 1] = row.Cells[j].Value;
                        }
                    }
                    ObjWorkBook.Save();
                }
                catch (Exception ex) { MessageBox.Show(ex.Message, "Error"); }
    
                ObjWorkBook.Close(null, System.Windows.Forms.Application.StartupPath + "\\" + textBox1.Text + ".xlsx", null);
    
                        ObjExcel.Quit();
                        ObjWorkBook = null;
                        ObjWorkSheet = null;
                        ObjExcel = null;
                        GC.Collect();
    
                this.Text = this.Text + " - " + textBox1.Text + ".xlsx";
    

    【讨论】:

    • 这与 GUI 自动化无关
    • 问题是关于使用 excel 工具进行计算。我举了一个用c#创建和填充excel表的例子#
    • @ThomasWeller:你怎么确定这不是 OP 要问的?
    • @Flydog57:标题包含“with Windows Application driver”,这个答案与此无关
    • @DeviceThanks 的努力,VS 中的 VBA 或 c# 不是这里的东西,其想法是通过 GUI 自动测试 excel 电子表格,就像人类与电子表格交互一样。
    猜你喜欢
    • 2017-04-05
    • 2019-04-04
    • 2017-03-09
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多