【问题标题】:CUITe/Coded UI : mouse.Click position wrong (Screen resolutions)CUITe/Coded UI:mouse.Click 位置错误(屏幕分辨率)
【发布时间】:2014-04-27 03:32:50
【问题描述】:

我正在使用 CUITe 自动测试 UI 片段(捕获为页面对象模型)。

我有一个类可以捕获 UI 中的按钮,如下所示:

class Navigators : CUITe_BrowserWindow
{
  public new string sWindowTitle = "Window";
  public CUITe_HtmlInputButton next = new CUITe_HtmlInputButton("Id=Content_btnNext");

  // Other such buttons

  //And a method to click any button
  public void ClickButton(string id)
  {
    CUITe_BrowserWindow.GetBrowserWindow<Navigators>().Get<CUITe_HtmlInputButton>(string.Concat("Id=", id)).Click();
  }
}

我试图自动化的测试是这样的,点击一个按钮:

CUITe_BrowserWindow.Launch<Navigators>("url");
CUITe_BrowserWindow.GetBrowserWindow<Navigators>().ClickButton("Content_btnNext");

我的问题是: 当我将屏幕投影到辅助监视器并扩展它时,完美地单击了“下一步”按钮。但是,在我的系统上,鼠标将按钮移到另一个位置,并且单击不会发生。

我已尝试刷新 CodedUI 缓存(通过将 SearchConfiguration 设置为 Always),但这没有奏效。此外,控件上的 SetFocus 工作正常,而 DrawHighlight 显示错误的位置。

任何帮助将不胜感激。

编辑 当我将屏幕分辨率更改为 1440x900(这是辅助显示器的分辨率)时,点击发生了。

如果有人可以提供显示如何在 Coded UI 中处理不同分辨率屏幕的链接,我会很高兴

【问题讨论】:

  • 您是否将 SearchConfiguration Always 添加到按钮层次结构中的每个控件?
  • 嗨,杰夫,据我了解,CUITe 不使用控制层次结构;相反,控件绑定到顶级容器,在我的例子中就是浏览器窗口。

标签: coded-ui-tests setfocus mouse-position


【解决方案1】:

以下是我在我的 CUITe 脚本中的操作方法,它在我的大显示器上以 1920x1080 和在我的笔记本电脑屏幕上以 1280x1024 工作正常。

鉴于您上面的 OR 定义。

using Navigators.ObjectRepository; //guessing the name here

var pgNavigator = new Navigators();

//whatever else you do before clicking on next

Navigators.next.Click();

【讨论】:

    【解决方案2】:

    这是我在 Win 8.1 商店应用程序上单击控件的方式,这可能对您有帮助,也可能对您没有帮助:

                Mouse.Click(new Microsoft.VisualStudio.TestTools.UITest.Input.Point(uiControl.Left + (uiControl.Width / 2), uiControl.Top + (uiControl.Height / 2)));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-06-28
      • 1970-01-01
      • 2017-04-16
      • 1970-01-01
      相关资源
      最近更新 更多