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

时间:2013-10-01 08:30:06

标签: c# coded-ui-tests

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

有没有办法实现它?

2 个答案:

答案 0 :(得分:1)

网址应位于浏览器的地址栏中,只需将其读出即可。

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

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

答案 1 :(得分:0)

这将返回顶级浏览器:

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;
        }