Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# UIAutomation-滚动和文本问题_C#_Textbox_Scroll_Ui Automation - Fatal编程技术网

C# UIAutomation-滚动和文本问题

C# UIAutomation-滚动和文本问题,c#,textbox,scroll,ui-automation,C#,Textbox,Scroll,Ui Automation,我制作了一个小型uiautomation应用程序,可以在窗体窗口中滚动搜索特定的richtextbox。一旦找到richtextbox,它将提取文本并根据常量进行验证。我已经编写了整个程序,但我有两个问题: FindAll函数有时会忽略文本框。我相信这是因为滚动速度太快,因为如果我一步一步地浏览我的应用程序,它每次都会工作 应用于richtextbox的TextPattern为我提供了DocumentRange.GetText函数。但是,它不会检索任何返回/新行 有没有什么方法可以让我在不降低滚

我制作了一个小型uiautomation应用程序,可以在窗体窗口中滚动搜索特定的richtextbox。一旦找到richtextbox,它将提取文本并根据常量进行验证。我已经编写了整个程序,但我有两个问题:

  • FindAll函数有时会忽略文本框。我相信这是因为滚动速度太快,因为如果我一步一步地浏览我的应用程序,它每次都会工作
  • 应用于richtextbox的TextPattern为我提供了DocumentRange.GetText函数。但是,它不会检索任何返回/新行
  • 有没有什么方法可以让我在不降低滚动速度的情况下始终捕获文本框

    是否有任何选项提取包含返回/新行的文本?我可以考虑复制/粘贴,因为我的一些文本框是不可选择的。
    更新日期:2015年1月19日 对于问题1,我放置了一对线程。Sleep(500)。我不确定它在哪里表示由于滚动,窗格仍在加载


    对于问题2,我发现我认为不可选择的文本框是可选择的。但是,我仍然不想使用“复制”选项,因为一个更改项目焦点的事件将复制到错误的位置。我几乎没有保留SendKeys选项。

    FindAll有时会丢失元素,如果它尚未创建或变得可见。这是UI自动化的标准延迟/等待问题。@VasilyRyabov是否有一些元素仍在加载的指示器?如果我为任何项目运行FindFirst,如果元素仍在加载,它会返回null吗?FindAll/FindFirst找不到不可见(但已创建)元素。你需要一些足够的停顿,或者找几次合理的时间间隔。