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