java - Selenium:-browser.helperApps.neverAsk.openFile 和 savetodisk 不起作用

标签 java selenium selenium-webdriver

我这里有一个严重的问题。 请在下面找到我的场景:

  1. 登录
  2. 点击链接
  3. 点击后,会打开一个新选项卡

我已使用以下代码将焦点切换到新打开的选项卡

ArrayList<String> newTab = new ArrayList<String>(driver.getWindowHandles());
driver.switchTo().window(newTab.get(1));

问题是,当我尝试单击新打开的选项卡上的 Excel 下载链接时,会出现“打开方式”弹出窗口,并且我的自动化失败。即使添加了以下首选项之后

firefoxProfile.setPreference("browser.helperApps.neverAsk.openFile",
"text/vnd.openxmlformats-officedocument.spreadsheetml.sheet");

firefoxProfile.setPreference("browser.helperApps.neverAsk.saveToDisk",
"text/vnd.openxmlformats-officedocument.spreadsheetml.sheet");

请问您能尽快提出一个可行的解决方案吗?
谢谢

最佳答案

请在您的 Firefox 的(about:config) 部分中手动设置这些首选项,访问该应用程序,单击链接并查看文件是否在没有任何提示的情况下下载。这将帮助您识别自动化问题。

我尝试在我的 Firefox 中设置这些首选项,但它仍然提示下载窗口。仅在选中“从现在开始自动对此类文件执行此操作”后,我才能在没有提示的情况下下载,这会更新配置文件目录中的 mimeTypes.rdf 文件。因此,要通过自动化完成此工作,您可能需要将包含 mimeTypes.rdf 的自定义 Firefox 配置文件与您的 TestSuite 捆绑在一起。

以下是从给定配置文件目录创建 FirefoxProfile 的代码:

FirefoxProfile profile = new FirefoxProfile(new File("<PATH_TO_FIREFOX_PROFILE_DIRECTORY_THAT_WORKS_WHEN_TESTED_MANUALLY>");
WebDriver driver = new FirefoxDriver(profile);

关于java - Selenium:-browser.helperApps.neverAsk.openFile 和 savetodisk 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38307446/

相关文章:

java - 如何使用 Selenium 和 Java 获取完整网页的屏幕截图?

java - 面临错误,预期条件失败 : waiting for alert to be present (tried for 5 second(s) with 500 milliseconds interval)

java - 为什么我加了 10 分钟后月份变成了 50?

java - Selenium webdriver - 无法设置浏览器区域设置

c# - Python 原始字符串 "r"标志在 C# 中等效

javascript - Selenium C# 如何获取 IWEbElement 中的文本

java : convert long to Timestamp

java - SQL语法错误异常

java - Jackson - 反序列化为运行时指定的类

python - 如何选择同一个类的一些元素?