如果版本为8或更低版本,可以使用以下代码自动执行文件下载并保存在IE中:
AutomateWinWindow objfileWindow;
AutomateWinWindow objfileSaveAs;
objfileWindow = new AutomateWinWindow("File Download", "#32770", "1", "File Download", "");
CodedUI_Automation.AutomateWinButton.AutomateWinButtonMethod(objfileWindow, "Save", "File Download", "Click");
objfileSaveAs = new AutomateWinWindow("Save As", "#32770", "1", "Save As", "");
templatesourcefile = ManageSaveAsWindow(objfileSaveAs, TemplateInputPath, offeringID, "Excel");
但是对于最新版本,文件下载窗口不会出现。它作为一个小突然出现在没有任何名称和身份的下来。如果有人可以帮助我,那将是一个很好的帮助。
答案 0 :(得分:1)
您提供的代码对我来说看起来不像普通的编码。还请提供AutomateWinWindow和ManageSaveAsWindow的类定义。
绝对可以处理文件的保存。我会推荐两件事。
您可以使用Coded UI工具中的检查器检查您要点击或操作的内容。
您可以使用Inspect工具之类的检查器。
通常我也建议使用唱片和播放只是为了看看它是什么,但似乎记录和播放不起作用(至少不在我的机器上)。
使用内置的检查工具,我可以看到通知工具栏具有以下属性:
ControlType: ToolBar
TechnologyName: MSAA
Name: Notification
使用检查器中的导航箭头,您可以移动到子项或兄弟元素。
我能够监视可用于保存文件的UISaveSplitButton。
ControlType: SplitButton (important! not a button, but a split button)
TechnologyName: MSAA
Name: Save
使用像CodedUI Fluent这样的搜索抽象(我写的东西,类似于CUITe),它看起来像:
WinToolBar notificationBar = browserWindow.Find<WinToolBar>(WinToolBar.PropertyNames.Name, "Notification", PropertyExpressionOperator.EqualTo);
WinSplitButton saveButton = notificationBar.Find<WinSplitButton>(WinButton.PropertyNames.Name, "Save", PropertyExpressionOperator.EqualTo);
saveButton.Click();
仅使用CodedUI,它看起来像这样(我更喜欢上述抽象的流畅搜索语法,但为了完整性):
WinToolBar notificationBar = new WinToolBar(browserWindow);
notificationBar.SearchProperties.Add(WinToolBar.PropertyNames.Name, "Notification", PropertyExpressionOperator.EqualTo);
WinSplitButton saveButton = new WinSplitButton(notificationBar);
saveButton.SearchProperties.Add(WinButton.PropertyNames.Name, "Save", PropertyExpressionOperator.EqualTo);
Mouse.Click(saveButton);