You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Visual Studio 2017中使用Coded UI如何从网页链接打开PDF文件?

在Visual Studio 2017的Coded UI中点击网页链接打开PDF的解决方案

首先,你已经搭好了基础的代码框架,我来帮你完善细节并说明关键要点:

1. 完善链接定位与点击代码

你的代码已经在尝试定位网页超链接,但InnerText的搜索属性需要补全。假设目标链接的完整显示文本是“查看我们的文档”,可以这样补全代码:

// 启动浏览器并导航到目标URL
BrowserWindow browser2 = BrowserWindow.Launch(url);
browser2.Maximized = true;

// 定位"查看我们的文档"超链接
UITestControl rpQ3FinReport = new UITestControl(browser2);
rpQ3FinReport.TechnologyName = "Web";
rpQ3FinReport.SearchProperties.Add("ControlType", "Hyperlink");
// 补全InnerText属性,确保精准定位到目标链接
rpQ3FinReport.SearchProperties.Add("InnerText", "查看我们的文档");

// 执行点击操作
Mouse.Click(rpQ3FinReport);

2. 处理PDF打开后的识别逻辑

点击链接后,PDF通常会以两种形式打开:浏览器内嵌窗口或独立PDF阅读器(比如Adobe Acrobat),针对不同场景可以这样处理:

  • 浏览器内嵌PDF:如果PDF在新标签页打开,可通过BrowserWindow.Find定位新窗口:

    // 等待新标签页加载(可根据实际加载速度调整等待时长)
    Playback.Wait(3000);
    // 通过标题关键字定位PDF窗口
    BrowserWindow pdfWindow = BrowserWindow.Find(new PropertyExpressionCollection(
        new PropertyExpression(BrowserWindow.PropertyNames.Name, "PDF文档标题关键字", PropertyExpressionOperator.Contains)
    ));
    
  • 独立PDF阅读器窗口:以Adobe Acrobat为例,定位外部阅读器窗口:

    Playback.Wait(3000);
    Window pdfReaderWindow = new Window();
    pdfReaderWindow.SearchProperties.Add("Name", "Adobe Acrobat");
    pdfReaderWindow.SearchProperties.Add("ClassName", "AcrobatSDIWindow");
    

3. 关键注意事项

  • 合理添加等待:避免页面未加载完成就执行操作,推荐用更智能的等待方法替代固定时长等待:
    // 等待链接控件加载完成,超时时间10秒
    if (rpQ3FinReport.WaitForControlExist(10000))
    {
        Mouse.Click(rpQ3FinReport);
    }
    else
    {
        Console.WriteLine("未找到目标链接,请检查定位属性");
    }
    
  • 优化搜索属性:如果InnerText不够唯一,可以补充Id、TagName等属性提升定位准确性:
    rpQ3FinReport.SearchProperties.Add("Id", "document-link-id");
    

内容的提问来源于stack exchange,提问作者Sohel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:24:14