我正在使用硒网络驱动程序(非硒RC)。我需要通过单击链接下载xml文件。我做了一些谷歌搜索,我在一些答案中找到了使用AutoIT来处理与操作系统相关的对话框。
但是有没有其他选择使用selenium来处理这个而不使用AutoIT工具。
请提出一些想法。
答案 0 :(得分:0)
您可以更具体地了解您使用的是哪种浏览器。如果它是firefox,你可以更好地控制文件下载。包括firefox在内的任何其他浏览器都可以使用机器人类。这可用于执行单击“确定”按钮进行下载。如果它的chorme然后文件下载自动发生没有任何干预。
答案 1 :(得分:0)
对于最新版本的Firefox(编写时),这些是我需要避免下载框的参数。请注意,您需要指定一个可以写入的目录,如第三个语句中所示:
FirefoxProfile profile = new FirefoxProfile();
profile.setPreference( "browser.download.folderList", 2 );
profile.setPreference( "browser.download.dir", <YOUR DOWNLOAD PATH> );
profile.setPreference( "plugin.disable_full_page_plugin_for_types", "application/pdf" );
profile.setPreference(
"browser.helperApps.neverAsk.saveToDisk",
"application/csv,text/csv,application/pdfss, application/excel" );
profile.setPreference( "browser.download.manager.showWhenStarting", false );
profile.setPreference( "pdfjs.disabled", true );
请注意,较新版本的Firefox需要使用pdfjs的最后一行,而不是之前的版本。更多信息Here
答案 2 :(得分:0)
我在项目中面临Authentication Proxy弹出问题。所以我尝试了以下解决方案,它工作正常。 当我们在安装环境中运行来自Selenium Web驱动程序的脚本后,需要进行安装以处理身份验证代理。
首先,你需要知道以下细节,
network.proxy.http_port(例如:8080)
private static WebDriver initFirefoxDriver(String appURL)
{
System.out.println("Launching Firefox browser..");
FirefoxProfile firefoxProfile = new FirefoxProfile();
firefoxProfile.setPreference("network.proxy.type", 1);
firefoxProfile.setPreference("network.proxy.autoconfig_url", "http://example.com/abc.pac");
firefoxProfile.setPreference("network.proxy.http", " abc-proxy.com");
firefoxProfile.setPreference("network.proxy.http_port", 8080);
WebDriver driver = new FirefoxDriver(firefoxProfile);
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
driver.manage().window().maximize();
driver.navigate().to(appURL);
//driver.get(appURL);
return driver;
}