在C#中区分浏览器选项卡和浏览器窗口

时间:2013-09-04 18:29:56

标签: c# assert coded-ui-tests

这似乎是我遇到的一个棘手的问题。但是你知道一种方法来区分浏览器窗口和浏览器选项卡以进行CodedUI测试。我该如何实现呢?

1 个答案:

答案 0 :(得分:0)

如果我理解正确,您的目标是确定您加载/启动的网页是否已标记或是否在新的浏览器窗口中启动。 同意标签式浏览器窗口与独立浏览器窗口无法区分。 我已经为你找到了一个解决方案 - 不可否认它不是非常优雅,但应该可以解决这个问题。

Imporant:您可以使用Ctrl + Tab和Ctrl + Shift + Tab在选项卡式窗口之间切换。

  1. 启动相关页面
  2. 开始编码录制
  3. 如果您的页面有标签,请按Ctrl + Shift + Tab键,这会将您带到父页面,或者您选中的其他页面。
  4. 创建一个断言以验证您是否在该页面上。
  5. 按Ctrl + Tab键,现在您应该返回正在测试的新页面。
  6. 创建一个断言以验证您是否在新页面上。
  7. 如果这些断言通过,你知道你有一个标签页;如果您的页面在独立浏览器中加载,则Ctrl + Tab / Ctrl + Shift + Tab将无法执行任何操作,您的断言将失败。
  8. 它看起来像这样:

        [TestMethod]
        public void CodedUITestMethod1()
        {
            //This takes you to the parent tab
            this.UIMap.CtrlShiftTab();
            //Assertion to confirm you're on the parent page
            this.UIMap.AssertParentPage();
    
            //This takes you to the new tab
            this.UIMap.CtrlTab();
            //Assertion to confirm you're on the new page
            this.UIMap.AssertNewPage();
        }
    

    它应该做的伎俩。祝你好运,如果你找到另一种方法来获得你的结果,请告诉我们!

    编辑:您还可以使用Ctrl + Number在标签之间切换。因此,Ctrl + 1将带您进入第一个选项卡,Ctrl + 2将带您进入第二个选项卡,依此类推。