C# 通过传递URL获取页面上的控件?是否还获取当前页面的URL?

C# 通过传递URL获取页面上的控件?是否还获取当前页面的URL?,c#,coded-ui-tests,C#,Coded Ui Tests,我的要求:我想知道我当前在哪个页面,这样如果任何测试失败,我想将当前页面的URL传递给一个方法并获得home按钮链接。如果出现任何异常,最终导航到主链接 有什么方法可以实现吗?URL应该在浏览器的地址栏中,只要从那里读出即可 读取该值的一种方法是在地址栏中记录对该值的断言,然后复制访问该值的已记录断言方法中的代码部分 另一种方法是使用十字线工具选择地址区域,然后(单击双V形图标打开左侧窗格)添加所选区域的UI控件。然后访问该值。这将返回顶部浏览器: BrowserWindow bw = null

我的要求:我想知道我当前在哪个页面,这样如果任何测试失败,我想将当前页面的URL传递给一个方法并获得home按钮链接。如果出现任何异常,最终导航到主链接


有什么方法可以实现吗?

URL应该在浏览器的地址栏中,只要从那里读出即可

读取该值的一种方法是在地址栏中记录对该值的断言,然后复制访问该值的已记录断言方法中的代码部分


另一种方法是使用十字线工具选择地址区域,然后(单击双V形图标打开左侧窗格)添加所选区域的UI控件。然后访问该值。

这将返回顶部浏览器:

BrowserWindow bw = null;

        try
        {
            Playback.PlaybackSettings.WaitForReadyLevel = WaitForReadyLevel.AllThreads;
            var browser = new BrowserWindow() /*{ TechnologyName = "MSAA" }*/;

            PropertyExpressionCollection f = new PropertyExpressionCollection();
            f.Add("TechnologyName", "MSAA");
            f.Add("ClassName", "IEFrame");
            f.Add("ControlType", "Window");
            browser.SearchProperties.AddRange(f);

            UITestControlCollection coll = browser.FindMatchingControls();

            // get top of browser stack
            foreach (BrowserWindow win in coll)
            {
                bw = win;
                break;
            }

            String url = bw.Uri.ToString(); //this is the value you want to save


        }
        catch (Exception e)
        {
            throw new Exception("Exception getting active (top) browser:   - ------" + e.Message);

        }
        finally
        {
            Playback.PlaybackSettings.WaitForReadyLevel = WaitForReadyLevel.UIThreadOnly;
        }