当前位置:  开发笔记 > 编程语言 > 正文

远程文件上传量角器测试

如何解决《远程文件上传量角器测试》经验,为你挑选了1个好方法。

我在量角器中编写测试,这是一个基于JS的框架和用于运行测试的selenium测试堆栈.我面临一个问题,我必须测试文件上传.

我遇到的问题是我试图上传的文件是在测试包中,而selenium节点是一个单独的服务器,因此它不会获取该文件.我尝试使用文件描述符,虽然文件名设置内容不上传.

下面是我的代码片段.

  var remote = require('selenium-webdriver/remote');
   browser.setFileDetector(new remote.FileDetector());
   var absolutePath = path.resolve(__dirname, "../specs/data/baseProducts.csv");
   $('input[type="file"]').sendKeys(absolutePath);

你有相同的输入吗?或者您是否知道有人使用selenium在JS中编写文件上传测试?非常感谢您的帮助



1> alecxe..:

首先,要使文件上传与远程selenium服务器一起使用,您需要最新的protractor(目前为3.0.0)(将最新的selenium-webdrivernodejs包作为依赖项).

然后,这两行对于能够通过线路将文件发送到selenium节点至关重要:

var remote = require('selenium-webdriver/remote');
browser.setFileDetector(new remote.FileDetector());

而且,现在您应该能够像在本地运行测试一样上传文件.


完整的工作测试(在BrowserStack上测试,非常适合我):

var path = require('path'),
    remote = require('selenium-webdriver/remote');

describe("File upload test", function () {
    beforeEach(function () {
        browser.setFileDetector(new remote.FileDetector());
        browser.get("https://angular-file-upload.appspot.com/");
    });

    it("should upload an image", function () {
        var input = element(by.model("picFile")),
            uploadedThumbnail = $("img[ngf-src=picFile]");

        // no image displayed
        expect(uploadedThumbnail.isDisplayed()).toBe(true);

        // assuming you have "test.jpg" right near the spec itself
        input.sendKeys(path.resolve(__dirname, "test.jpg"));

        // there is a little uploaded image displayed
        expect(uploadedThumbnail.isDisplayed()).toBe(true);
    });
});

另见相关问题:

setFileDectector无法设置远程文件检测器

Protractor文件上传 - 使用webdriver setFileDetector和LocalFileDetector支持远程上传

推荐阅读
mobiledu2402852413
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有