首页 > 解决方案 > 使用 C# 和 WinAppDriver 从 Excel 名称框中获取文本

问题描述

我有一个 C# 自动化项目,它使用 WinAppDriver Release Candidate 1.2 与 Microsoft Excel 一起工作。

我有一个案例,我试图使用下面的代码获取工作表上已填充的行数。

    public string GetLastCellBelowStartRange(string sheetName, string startRange)
    {
        var sheet = FindSheet(sheetName);

        var nameBox = this.GetNameBox();
        nameBox.SendKeys($"{sheetName}!{startRange}{Keys.Enter}");

        this.excel.SendKeys($"{Keys.Control}{Keys.ArrowDown}");

        var endCellRange = nameBox.GetAttribute("LegacyIAccessible.Value");

        return endCellRange;
    }

代码成功地转到工作簿中的最后一个单元格,nameBox 以及 excel 驱动程序(即 this.excel)都是已知的。

我无法确定如何获取 Inspect 在 Value.Value 和 LegacyIAccessible.Value 中显示的当前单元格的内容。

有人知道这样做的方法吗?

标签: selenium-webdriverappium-desktopwinappdriverexcel-automation

解决方案


public string GetLastCellBelowStartRange(string sheetName, string startRange)

    {
        var sheet = FindSheet(sheetName);

        var nameBox = this.GetNameBox();
        nameBox.SendKeys($"{sheetName}!{startRange}{Keys.Enter}");

        this.excel.SendKeys($"{Keys.Control}{Keys.ArrowDown}");

        string endCellRange = nameBox.GetAttribute("Value.Value").ToString();

        return endCellRange;
    }

推荐阅读