我发现了一个问题,即我会使用谷歌浏览器点击网页内的链接到PDF文档。以前,当我单击链接时,PDF文档将加载到新选项卡中。然后我会围绕文档执行一些验证。
最近,测试开始失败,因为当我点击PDF文档的链接时,它会下载PDF文件而不是在新标签中打开它。我假设最近由于更新了chrome或chrome驱动程序而出现了问题。
如果我手动检查链接,而不是通过chrome驱动程序实例,那么它将在新选项卡中打开就好了。有没有人遇到过这个问题?
答案 0 :(得分:2)
要允许Selenium WebDriver中的所有插件,请尝试以下配置:
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
ChromeOptions options = new ChromeOptions();
options.addArguments("--always-authorize-plugins=true");
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
WebDriver driver = new ChromeDriver(capabilities);
或强>
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setCapability("chrome.switches", Arrays.asList("--load-extension=/path/to/extension/directory"));
WebDriver driver = new ChromeDriver(capabilities);
答案 1 :(得分:0)
刚刚解决了类似的问题。这是我的JS代码:
var webdriver = require('selenium-webdriver');
var chrome = require('selenium-webdriver/chrome');
var options = new chrome.Options();
var builder = new webdriver.Builder();
var driver;
builder.withCapabilities(webdriver.Capabilities.chrome());
options = chrome.Options.fromCapabilities(builder.getCapabilities());
options.excludeSwitches('test-type','ignore-certificate-errors');
builder.setChromeOptions(options);
driver = builder.build();
driver.get('https://training.github.com/kit/downloads/github-git-cheat-sheet.pdf');
// driver.quit();
排除测试类型开关是您问题的解决方法,如下所述:https://code.google.com/p/chromedriver/issues/detail?id=1081#c6
当你这样做时,你会收到警告:
您可以通过排除 ignore-certificate-errors 开关来删除。
希望它有所帮助。
答案 2 :(得分:0)
当我们在个人资料首选项中启用Chrome PDF Viewer插件时,此工作正常:
HashMap<String, Object> plugin = new HashMap<String, Object>();
plugin.put("enabled", true);
plugin.put("name", "Chrome PDF Viewer");
HashMap<String, Object> prefs = new HashMap<String, Object>();
prefs.put("plugins.plugins_list", Arrays.asList(plugin));
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("prefs", prefs);
ChromeDriver driver = new ChromeDriver(options);