当前位置: 首页 > 面试题库 >

Nightwatch.js中的文件上传测试

仰雅昶
2023-03-14
问题内容

我想重新讨论提出的有关在使用selenium的Nightwatch.js中测试文件上传的问题。

推荐使用两个链接将文件输入元素的值设置为url的解决方案。在我的用例中,我无法使其正常工作。即使在夜视之外,在的输入中手动设置value标签type="file",也不会更改url。我已经在开发工具中的Chrome,Firefox和IE10上进行了尝试。

我看过的另一种解决方案是尝试模拟整个文件上传过程的击键。这将遵循以下路径:单击文件上传按钮,键入路径,然后键入Enter。这可以通过.click.key方法完成。但是,您将失去对实际文件上传窗口的关注,这会延迟击键,直到关闭该窗口。其他开发人员似乎能够使用Java中的.findElement.sendKeys方法直接在selenium中修复此解决方案,但我不知道如何在javascript和守夜本身中执行此操作。

有任何想法吗?

// My test
      module.exports = {
      "Standard File Upload" : function (browser) {
        browser
          .url("http://localhost:3000")
          .waitForElementVisible('body', 1000)
          .waitForElementVisible('input[type="file"]', 1000)
          .setValue('input[type="file"]','http://localhost:3000/testfile.txt')
          .click('#submit')
          .pause(1000)
          .assert.containsText('h3', 'File Uploaded Successfully')
          .end();
      }
    };

// http://localhost:3000/testfile.txt was tested manually in the file upload window and worked successfully
<!-- My input tag --> 
<input id="fileUpload" type="file" name="textfile"/>

问题答案:

我的setValue()方法实现有两个单独的问题。

  1. 在nightwatch命令中使用–verbose标记导致我遇到一个问题,即在期间实际上找不到输入标签setValue(),而在期间发现了输入标签 waitForElementVisible()。改变input[type="file"]input#fileUpload解决这个问题。

  2. 其次,以下描述路径的方法不起作用…

    • 'textfile.txt'
    • 'http://localhost:3000/testfile.txt' (如果在文件上传窗口中手动输入,将可以使用)

工作正在使用什么 require('path').resolve(__dirname + '/testfile.txt')

在这里
看一看,以了解导致该修复程序的讨论。感谢Richardard-
flosi。

工作代码:

module.exports = {
  "Standard File Upload" : function (browser) {
    browser
      .url("http://localhost:3000")
      .waitForElementVisible('body', 1000)
      .waitForElementVisible('input#fileUpload', 1000)
      .pause(1000)
      .setValue('input#fileUpload', require('path').resolve(__dirname + '/testfile.txt')) // Works
//      .setValue('input#fileUpload', "testfile.txt") // Will not work
//      .setValue('input#fileUpload', "http://localhost:3000/testfile.txt") // Will not work
//      .setValue('input[type="file"]', require('path').resolve(__dirname + '/testfile.txt')) // Will not work
      .click('#submit')
      .pause(1000)
      .assert.containsText('h3', 'File Uploaded Successfully')
      .end();
  }
};


 类似资料:
  • 问题内容: 我正在使用Chrome驱动程序使用nightwatch.js运行前端测试。我需要测试图像上传是否正常工作,大概是通过提供的文件输入来进行的,因为在成功发布后会运行回调。 我知道可以使用Selenium Web驱动程序的sendKeys方法来完成。 您如何使用javascript和nightwatch.js完成此操作?您可以访问Selenium Webdriver或与其相关的界面吗? 问

  • 我正在测试文件上传到SharePoint在线与邮递员。在我的帖子请求中,我将正文设置为form-data,并添加了一个名为a.txt.的文本文件的文件参数 当我执行请求时,我的文件被上传,但当我打开文件时,内容被删除 我已尝试将内容类型标题设置为 应用程序/x-wow-form-urlencoded或多部分/form-data 但是没有运气

  • 在此处输入图像描述 其失败错误如下:线程名:jp@gc-终极线程组2-4示例开始:2021-02-04 17:28:44 IST加载时间:562连接时间:0延迟:562大小以字节为单位:595发送字节:84568头大小以字节为单位:446主体大小以字节为单位:149示例计数:1错误计数:1数据类型(“text”“bin”“”):文本响应代码:500响应消息: HTTPSampleResult字段:

  • 问题内容: 但我不断收到“失败”错误消息框 Index.cshtml 控制者 Files.cshtml Global.asax 问题答案: 更好的方法是使用jquery表单插件。 这是示例: Html.BeginForm 行动方法 进度条 jQuery和表单脚本 更新中… 两次遇到调用操作方法问题的人都归功于Ajax.BeginForm,只需将其转换为Html.BeginForm()。

  • 本文向大家介绍PHP文件上传问题汇总(文件大小检测、大文件上传处理),包括了PHP文件上传问题汇总(文件大小检测、大文件上传处理)的使用技巧和注意事项,需要的朋友参考一下 由于涉及到本地和服务器两方面的安全问题,所以基于input type="file"形式的页面文件上传一直处于一个很尴尬的位置。一方面,用户不希望隐私泄露,所以浏览器无法对用户在上传时选择的文件做有效的判 断。另一方面,为了服务器

  • 我写了一些相关的代码,使用Spring上传文件,它工作正常,现在我正在为此编写联调案例,但我面临一些问题我的控制器方法, 测试用例 但我正在 我哪里错了?