如何使用 QAF 和 WebDriverManager 设置 chrome 浏览器自动下载 pdf

How Can I set chrome browser to automatically download a pdf using QAF and WebDriverManager

使用数据表,我通常将浏览器名称传递到我创建的 class 到 select 我想从哪个浏览器 运行 我的测试。最近,我一直在开发一个应用程序,我需要在其中下载 PDF,然后验证其内容。除了下载 PDF 之外,我的一切工作都顺利进行。使用 WebDriverManager,它会在每次测试 运行 时创建一个浏览器配置文件,因此,我需要更新 chromeOptions 以在脚本开始之前自动下载 PDF。

这是我已有的代码。我只需要有关将哪些内容放入首选项中以使其起作用的帮助。 -

 public static void selectBrowser(String strBrowser) {
    switch (strBrowser) {
        case "Chrome":
                String chromePrefs = "{'goog:chromeOptions':{'prefs':{'profile.default_content_settings.popups':0}}}";
                ConfigurationManager.getBundle().setProperty("chrome.additional.capabilities", chromePrefs);
                TestBaseProvider.instance().get().setDriver("chromeDriver");
                Reporter.log("Chrome Browser was set", MessageTypes.Info);
                break;
        }
}

研究了几个小时后,终于发现我需要使用 plugins.always_open_pdf_externally 首选项。这是可能需要它的任何人的代码。

请注意,chromeOptions 之前的“goog:”是必需的,因为我启用了 WebDriverManager。对于第 3 方驱动程序管理器,我们需要在 chromeOptions 之前添加“goog:”才能正常工作。

你可以像这样简单地把它放在application.properties中-

chrome.additional.capabilities={"goog:chromeOptions":{"args":[--disable-extensions],"prefs":{"plugins.always_open_pdf_externally":true}}}

或者你可以像这样把它放在我上面的代码中

String chromePrefs = "{'goog:chromeOptions':{'args':[],'prefs':{\"plugins.always_open_pdf_externally\":true}}}";