【问题标题】:How to know where the cursor is in a WpfEdit field with CodedUI automation?如何使用 CodedUI 自动化知道光标在 WpfEdit 字段中的位置?
【发布时间】:2015-05-29 11:45:55
【问题描述】:

在 CodedUI WpfEdit 类上有一个 way 来获取选定的文本,但是当没有选择任何内容(即文本中插入符号的索引)时,我找不到获取光标位置的方法。 CodedUI 框架中有什么可用的吗?

我的目标是在控件包含的文本中声明光标的位置。

【问题讨论】:

    标签: c# wpf wpf-controls coded-ui-tests


    【解决方案1】:

    没有用于此的 codedui 方法,但请尝试以下操作: 添加参考:

     using System.Windows.Forms
    

    在你需要获取moue协调类型的代码中:

    Point p = new Point(Cursor.Position.X, Cursor.Position.Y);
    

    请记住,这不是相对于控件的位置,而是鼠标在屏幕上的位置。

    计算点相对于控件的位置应该不是什么大问题。

    【讨论】:

    • 对不起,我的帖子不是很清楚,我编辑了它:我实际上是指插入符号在字段文本内容中的位置
    【解决方案2】:

    我不确定有没有办法,我想这与实际找到光标位置的要求不同。

    如果您尝试插入一些文本,您可以随时将文本复制到测试方法中,插入文本,然后将其写回。

    或者,如果您不需要这样做,您可以始终使用 Keyboard.SendKeys 方法发送一个 home 命令,然后发送任意数量的右箭头命令,您需要将光标放在您想要的位置。

    您能否进一步详细说明光标位置到底需要什么?

    【讨论】:

    • 已编辑。请注意,我们实际上做了类似的事情作为一种解决方法。您只需发送一个键以在字段中插入一个字符,然后断言该字段的内容是您所期望的,如果光标位于您想要的位置,例如假设您知道文本是“ab”并且您想断言光标位于您发送 c 的 a 和 b 之间并断言文本是“acb”
    • 我看到了您的编辑,但这真的需要断言光标在文本字段中的位置吗?即,应用程序是否做了一些需要特定位置的事情?我试图弄清楚这个断言的目的是什么。文本框是如何工作的,除非您的应用正在做某事或对位置有要求,否则实际上没有必要测试光标。
    • 是的,相信我,如果不是必需的,我会用我的工作时间做其他事情?。考虑一个具有复杂 UI 的应用程序,其中时间至关重要,因此可以完全由键盘驱动,并且每个操作都需要在最少的按键次数内发生。
    • 当。您使用的解决方法是我能想到的唯一方法。如果您确实找到了其他方法,请在此处发布!! :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多