C# 编码 UI - 如何从网页中的 link 打开 pdf 文件
C# Coded UI - How to open a pdf file from a link in a web page
使用 Coded UI in Visual Studio 2017,如何从网页中的 link 打开 pdf 文件?
这是我写的代码段:
// Click on "View our documents" link
BrowserWindow browser2 = BrowserWindow.Launch(url);
browser2.Maximized = true;
UITestControl rpQ3FinReport = new UITestControl(browser2);
rpQ3FinReport.TechnologyName = "Web";
rpQ3FinReport.SearchProperties.Add("ControlType", "Hyperlink");
rpQ3FinReport.SearchProperties.Add("InnerText", "2017 Q3 Financial Report");
Mouse.Click(rpQ3FinReport);
// Open the pdf report
UITestControl rpQ3FinReportPDFOpen = new UITestControl(browser2);
rpQ3FinReportPDFOpen.TechnologyName = "MSAA";
rpQ3FinReportPDFOpen.SearchProperties.Add("ControlType", "Button");
rpQ3FinReportPDFOpen.SearchProperties.Add("Name", "Open");
Mouse.Click(rpQ3FinReportPDFOpen);
Playback.Wait(3000);
上面的 rpQ3FinReport 代码单击包含 PDF 文件的 link,但随后在网页的页脚中出现一条消息,要求打开或保存或取消 pdf 文件。
我找到了用于打开的对象 属性 信息并使用 rpQ3FinReportPDFOpen 打开 PDF,但是错误消息 指出:
Message: Test method HandCodingWebApp1.CUITHandCoding.StartURL threw
exception:
Microsoft.VisualStudio.TestTools.UITest.Extension.FailedToPerformActionOnHiddenControlException:
Cannot perform 'Click' on the hidden control.
Additional Details: TechnologyName: 'MSAA' Name: 'Open'
ControlType: 'Button' --->
System.Runtime.InteropServices.COMException: Exception from HRESULT:
0xF004F002
如何解决这个问题?
我附上了网页的图片。请注意,我不得不从页面中删除一些可识别的部分。
谢谢。
不确定为什么它对您不起作用。
测试可能尝试过快地单击控件。
尝试在此处插入:
openButton.WaitForControlExists();
Playback.Wait(150);
Mouse.Click(openButton);
它会等待控件启用,然后单击它。
150ms的等待时间是因为程序可能又太快了。
此外,您的代码对我来说很好用。 (与您的代码相同,但 BrowserWindow 中没有 url 定义,也没有单击超链接):
BrowserWindow browserWindow = new BrowserWindow();
// Open the pdf report
UITestControl openButton = new UITestControl(browserWindow);
openButton.TechnologyName = "MSAA";
openButton.SearchProperties.Add("ControlType", "Button");
openButton.SearchProperties.Add("Name", "Open");
Mouse.Click(openButton);
您也可以在这里尝试我自己定义 browserWindow 控件的地方:
UITestControl browserWindow = new UITestControl();
BrowserWindow.TechnologyName = "MSAA";
BrowserWindow.SearchProperties.Add("ControlType", "Window");
BrowserWindow.SearchProperties.Add("ClassName", "IEFrame");
// Open the pdf report
UITestControl openButton = new UITestControl(BrowserWindow);
openButton.TechnologyName = "MSAA";
openButton.SearchProperties.Add("ControlType", "Button");
openButton.SearchProperties.Add("Name", "Open");
Mouse.Click(openButton);
使用 Coded UI in Visual Studio 2017,如何从网页中的 link 打开 pdf 文件?
这是我写的代码段:
// Click on "View our documents" link
BrowserWindow browser2 = BrowserWindow.Launch(url);
browser2.Maximized = true;
UITestControl rpQ3FinReport = new UITestControl(browser2);
rpQ3FinReport.TechnologyName = "Web";
rpQ3FinReport.SearchProperties.Add("ControlType", "Hyperlink");
rpQ3FinReport.SearchProperties.Add("InnerText", "2017 Q3 Financial Report");
Mouse.Click(rpQ3FinReport);
// Open the pdf report
UITestControl rpQ3FinReportPDFOpen = new UITestControl(browser2);
rpQ3FinReportPDFOpen.TechnologyName = "MSAA";
rpQ3FinReportPDFOpen.SearchProperties.Add("ControlType", "Button");
rpQ3FinReportPDFOpen.SearchProperties.Add("Name", "Open");
Mouse.Click(rpQ3FinReportPDFOpen);
Playback.Wait(3000);
上面的 rpQ3FinReport 代码单击包含 PDF 文件的 link,但随后在网页的页脚中出现一条消息,要求打开或保存或取消 pdf 文件。
我找到了用于打开的对象 属性 信息并使用 rpQ3FinReportPDFOpen 打开 PDF,但是错误消息 指出:
Message: Test method HandCodingWebApp1.CUITHandCoding.StartURL threw exception:
Microsoft.VisualStudio.TestTools.UITest.Extension.FailedToPerformActionOnHiddenControlException:
Cannot perform 'Click' on the hidden control.
Additional Details: TechnologyName: 'MSAA' Name: 'Open'
ControlType: 'Button' --->
System.Runtime.InteropServices.COMException: Exception from HRESULT:
0xF004F002
如何解决这个问题?
我附上了网页的图片。请注意,我不得不从页面中删除一些可识别的部分。
谢谢。
不确定为什么它对您不起作用。 测试可能尝试过快地单击控件。 尝试在此处插入:
openButton.WaitForControlExists();
Playback.Wait(150);
Mouse.Click(openButton);
它会等待控件启用,然后单击它。 150ms的等待时间是因为程序可能又太快了。
此外,您的代码对我来说很好用。 (与您的代码相同,但 BrowserWindow 中没有 url 定义,也没有单击超链接):
BrowserWindow browserWindow = new BrowserWindow();
// Open the pdf report
UITestControl openButton = new UITestControl(browserWindow);
openButton.TechnologyName = "MSAA";
openButton.SearchProperties.Add("ControlType", "Button");
openButton.SearchProperties.Add("Name", "Open");
Mouse.Click(openButton);
您也可以在这里尝试我自己定义 browserWindow 控件的地方:
UITestControl browserWindow = new UITestControl();
BrowserWindow.TechnologyName = "MSAA";
BrowserWindow.SearchProperties.Add("ControlType", "Window");
BrowserWindow.SearchProperties.Add("ClassName", "IEFrame");
// Open the pdf report
UITestControl openButton = new UITestControl(BrowserWindow);
openButton.TechnologyName = "MSAA";
openButton.SearchProperties.Add("ControlType", "Button");
openButton.SearchProperties.Add("Name", "Open");
Mouse.Click(openButton);