我正在尝试在Selenium Webdrvier 3.0 + Java 1.8 + Chrome 53中编写代码,以便在调用get(url)后需要下载并执行.jnlp文件的应用程序。我不确定这是否可以在Selenium webdriver中处理? 由于我是selenium的新手,任何处理这些Windows Pop的帮助或指导对我都非常有帮助。 下面是一段代码:
if(browser.contains("CHROME") || browser.equalsIgnoreCase("chrome"))
{
ChromeOptions options = new ChromeOptions();
options.addArguments("--test-type");
options.addArguments("--disable-extensions");
capability = DesiredCapabilities.chrome();
capability.setBrowserName("chrome");
capability.setCapability(ChromeOptions.CAPABILITY, options);
}
capability.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
browserDriver = new RemoteWebDriver(new URL(nodeAddress), capability);
browserDriver.manage().timeouts().pageLoadTimeout(1000, TimeUnit.SECONDS);
browserDriver.manage().timeouts().implicitlyWait(90, TimeUnit.SECONDS);
browserDriver.manage().window().maximize();
browserDriver.get(applicationUrl);
logger.info("WebDriver successfully defined with Session ID:" + browserDriver.getSessionId() + ", Page Title:" + browserDriver.getTitle() + " and URL: " + browserDriver.getCurrentUrl());
答案 0 :(得分:0)
您尝试点击的按钮是Chrome用户界面的一部分,而不是网页的一部分,因此Selenium无法与之互动。从谷歌搜索完成来看,这显然是people have reported as a bug的问题,并且没有一致的解决方法。
答案 1 :(得分:0)
我通过 Selenium + Python 找到了一种解决方法(但类似的事情在 Java 中也应该是可行的)。在 Python 中,我只需以编程方式单击 Chrome UI 中的通知即可下载和安装 jnlp 文件(在 win32api 和 win32con 的帮助下 - 我只需要它用于 Win)。查看详情here 网页抓取现在对我来说容易多了 :)