硒+量角器:以chrome&火狐 [英] Selenium + Protractactor: Downloading file in chrome & firefox

查看:89
本文介绍了硒+量角器:以chrome&火狐的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我一直在尝试更新conf.js文件以下载文件,它应该适用于Firefox和chrome(彼此独立).

I've been trying to update my conf.js file to download files, it should work for firefox and chrome (independent of one another).

我一直在网上遵循指南和答案,(包括但不限于stackoverflow),但它对我来说并不完全有效. Chrome没问题,Firefox是我的麻烦制造者.

I've been following the guides and answers online, (including but not limited to stackoverflow) yet it doesn't fully work for me. Chrome is no problem, firefox is my trouble maker.

在Firefox上,它根本不下载文件,与chrome下载文件不同.

On firefox it simply does not download the file, unlike chrome where it downloads the file.

更新:我无法禁用来自Firefox的弹出窗口

Update: I cannot disable popup from firefox

来自conf.js的相关信息

The relevant info from conf.js

exports.config = {
[...]
 multiCapabilities: [
    {
      browserName: 'chrome',
      'goog:chromeOptions': {
        w3c: false, // problems with latest chrome driver... browser.actions is causing issues: https://github.com/jan-molak/serenity-js/issues/329
        prefs: {
          download: {
            prompt_for_download: false,
            directory_upgrade: true,
            default_directory: downloadsPath,
          },
        },
      },
    } , 
    {
      browserName: 'firefox',
      'goog:chromeOptions': {
        marionette: true,
        'moz:firefoxOptions': {
          prefs: {
            'pdfjs.disabled': true,
            'browser.download.folderList': 2,
            'browser.download.dir': downloadsPath,
            'browser.download.panel.shown': false,
            'browser.download.useDownloadDir': true,
            'browser.download.manager.useWindow': false,
            'browser.helperApps.alwaysAsk.force': false,
            'browser.helperApps.neverAsk.openFile': true,
            'browser.download.manager.closeWhenDone': false,
            'browser.download.manager.alertOnEXEOpen': false,
            'browser.download.manager.showWhenStarting': false,
            'browser.download.manager.focusWhenStarting': false,
            'browser.download.manager.showAlertOnComplete': false,
            'browser.helperApps.neverAsk.saveToDisk': 'application/vnd.openxmlformats',
          },
        },
      },
    },
  ],
[...]
};

我的dowload-e2e.js规范中的相关代码:

The relevant code from my dowload-e2e.js spec:

    const downloadBtn = manipulations.getDomObject('download-contract-button', 'id');
    browser.executeScript('arguments[0].click();', downloadBtn.getWebElement());

    try {
      await downloads.verifyFileExists(`file-name.docx`);
      await downloads.verifyFileSize(`file-name.docx`, 0);
    } catch (err) {
      throw new Error(`ERROR: ${err.message}`);
    }
    downloads.removeFile(`file-name.docx`);

推荐答案

Firefox/Chrome尝试如下:

Firefox/Chrome try like this:

const multiCapabilities = [
{
    browserName: 'chrome',
    'goog:chromeOptions': {
        w3c: false, // due problems with latest chrome driver
                    // browser.actions is causing issues: https://github.com/jan-molak/serenity-js/issues/329
        prefs: {
            download: {
                'prompt_for_download': false,
                'directory_upgrade': true,
                'default_directory': downloadsPath
            }
        }
    }
},
{
    browserName: 'firefox',
    'goog:chromeOptions': {
        marionette: true,
        'moz:firefoxOptions': {
            prefs: {
                'browser.download.folderList': 2,
                'browser.download.dir': downloadsPath,
                'browser.download.manager.showWhenStarting': false,
                'browser.helperApps.alwaysAsk.force': false,
                'browser.download.manager.useWindow': false,
                'browser.helperApps.neverAsk.saveToDisk':   'application/octet-stream, application/json, ' +
                                                            'text/comma-separated-values, text/csv, application/csv, ' +
                                                            'application/excel, application/vnd.ms-excel, ' +
                                                            'application/vnd.msexcel, text/anytext, text/plaintext, ' +
                                                            'image/png, image/pjpeg, image/jpeg, application/zip'
            }
        }
    }
}

];

这篇关于硒+量角器:以chrome&火狐的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆