1

我正在使用 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(这是辅助显示器的分辨率)时,点击发生了。

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

4

2 回答 2

0

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

            Mouse.Click(new Microsoft.VisualStudio.TestTools.UITest.Input.Point(uiControl.Left + (uiControl.Width / 2), uiControl.Top + (uiControl.Height / 2)));
于 2014-03-25T21:57:50.917 回答
0

以下是我在我的 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();
于 2014-03-27T19:38:48.653 回答