【问题标题】:Coded UI - How to bring in focus when a new IE window opens?Coded UI - 如何在新的 IE 窗口打开时获得焦点?
【发布时间】:2015-08-13 05:38:44
【问题描述】:

我正在使用 Coded UI(C# 语言)来记录和回放一系列事件。在其中,有一个加号,单击它会打开另一个 IE 窗口。我现在必须对这个新的浏览窗口执行某些操作。

显然,我确实记录了这些步骤,并且它已在我的脚本中生成为代码,但是在播放时,这个新窗口会自行刷新几次,我猜它会失去焦点。因此,CUIT 无法搜索要在新窗口上执行的第一步。你们能帮我出去吗?就像我如何更改脚本以重新关注这个新窗口一样。

你猜到的错误是:

Microsoft.VisualStudio.TestTools.UITest.Extension.UITestControlNotFoundException: 播放未能找到给定搜索的控件 属性..

【问题讨论】:

  • 您问题的“刷新”部分表明对这个问题的回答可能会有所帮助,请参阅stackoverflow.com/questions/27526163/…
  • @AdrianHHH 不,无法将两者联系起来。你能帮我在这里提供更多信息吗?
  • 在链接页面上查看我的答案,top 控件可能是您的浏览器,middle 控件(用您的话来说)“刷新几次”。因此,链接的答案建议在浏览器选项卡的 UI 控件上调用 Find()。如果这不起作用,则在浏览器本身的 UI 控件上调用它。

标签: c# internet-explorer automation coded-ui-tests


【解决方案1】:

根据您的父窗口和子窗口是否具有相同的标题,您可以执行以下操作:

如果两个窗口的标题相同

您可以使用 Sendkeys 将焦点重新回到您的子/父窗口。

  Keyboard.SendKeys("^{TAB}");

因此,如果您在子页面上并且需要返回父页面,请确保您首先关注您所在的窗口(子),然后使用 Sendkeys 选项卡转到您想要的窗口 -否则 Sendkeys 将无法按您的意愿工作。

如果您的父母和孩子的头衔不同

您可以使用 BrowserWindow.Locate 将焦点重新回到您的父/子窗口。

BrowserWindow.Locate("ParentTabTitle");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多