Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Node.JS-如何在JS中对动态文件名执行验证?_Javascript_Node.js_Selenium Webdriver_Jasmine_Protractor - Fatal编程技术网

Javascript Node.JS-如何在JS中对动态文件名执行验证?

Javascript Node.JS-如何在JS中对动态文件名执行验证?,javascript,node.js,selenium-webdriver,jasmine,protractor,Javascript,Node.js,Selenium Webdriver,Jasmine,Protractor,我尝试在“split()”中使用,以便忽略文件名中的动态字符串,只对固定值“Schedule”执行验证,然后返回的响应以通过测试 describe('Frontage - Calendar test cases', function() { var fs = require('fs'); var splitFileName = "Schedule" var filename = 'c:\\automation\\tests\\downloaded\\' + splitF

我尝试在“split()”中使用,以便忽略文件名中的动态字符串,只对固定值“Schedule”执行验证,然后返回的响应以通过测试

describe('Frontage - Calendar test cases', function() {

    var fs = require('fs');
    var splitFileName = "Schedule"
    var filename = 'c:\\automation\\tests\\downloaded\\' + splitFileName.split();

    it('New App - Calendar - Print calendar', function(){
       $$("button.font-xs.md-button.ng-scope.md-ink-ripple.gray-btn").get(1).click();
       browser.driver.wait(function() {
          return fs.existsSync(filename);
       }, 30000);
    });
});
错误

Failures:

  1) Test cases pull - Frontage Sanity Testing  Frontage - Calendar test cases New App - Calendar - Print calendar
   Message:
     Error: Wait timed out after 30000ms
   Stacktrace:
     Error: Wait timed out after 30000ms
    at C:\automation\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver\promise.js:1630:20
    at [object Object].promise.ControlFlow.runInFrame_ (C:\automation\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver\promise.js:1877:20)
    at [object Object].promise.Callback_.goog.defineClass.notify (C:\automation\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver\promise.js:2464:25)
    at [object Object].promise.Promise.notify_ (C:\automation\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver\promise.js:563:12)
    at Array.forEach (native)
    at Object.goog.array.forEach (C:\automation\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\goog\array\array.js:203:43)
    at [object Object].promise.Promise.notifyAll_ (C:\automation\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver\promise.js:552:16)
    at goog.async.run.processWorkQueue (C:\automation\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\goog\async\run.js:125:21)
From: Task: <anonymous wait>
    at [object Object].promise.ControlFlow.wait (C:\automation\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver\promise.js:1617:15)
    at [object Object].webdriver.WebDriver.wait (C:\automation\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver\webdriver.js:714:21)
    at [object Object].<anonymous> (C:\automation\tests\testCases\newApp\calendarTC.js:382:23)
    at C:\automation\npm\node_modules\protractor\node_modules\jasminewd\index.js:94:14
    at [object Object].promise.ControlFlow.runInFrame_ (C:\automation\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver\promise.js:1877:20)
    at [object Object].promise.ControlFlow.runEventLoop_ (C:\automation\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver\promise.js:1755:8)
    at [object Object].<anonymous> (C:\automation\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver\promise.js:2056:12)
    at goog.async.run.processWorkQueue (C:\automation\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\goog\async\run.js:125:21)
    at runMicrotasksCallback (node.js:337:7)
    at process._tickCallback (node.js:355:11)
From: Task: Asynchronous test function: it()
    at [object Object].<anonymous> (C:\automation\npm\node_modules\protractor\node_modules\jasminewd\index.js:93:33)
    at [object Object].<anonymous> (C:\automation\npm\node_modules\protractor\node_modules\minijasminenode\lib\async-callback.js:45:37)
    at [object Object].jasmine.Block.execute (C:\automation\npm\node_modules\protractor\node_modules\minijasminenode\lib\jasmine-1.3.1.js:1174:17)
    at [object Object].jasmine.Queue.next_ (C:\automation\npm\node_modules\protractor\node_modules\minijasminenode\lib\jasmine-1.3.1.js:2209:31)
    at [object Object].jasmine.Queue.start (C:\automation\npm\node_modules\protractor\node_modules\minijasminenode\lib\jasmine-1.3.1.js:2162:8)
    at [object Object].jasmine.Spec.execute (C:\automation\npm\node_modules\protractor\node_modules\minijasminenode\lib\jasmine-1.3.1.js:2503:14)
    at [object Object].jasmine.Queue.next_ (C:\automation\npm\node_modules\protractor\node_modules\minijasminenode\lib\jasmine-1.3.1.js:2209:31)
    at onComplete (C:\automation\npm\node_modules\protractor\node_modules\minijasminenode\lib\jasmine-1.3.1.js:2205:18)
    at [object Object].jasmine.Spec.finish (C:\automation\npm\node_modules\protractor\node_modules\minijasminenode\lib\jasmine-1.3.1.js:2477:5)
    at [object Object].onComplete (C:\automation\npm\node_modules\protractor\node_modules\minijasminenode\lib\jasmine-1.3.1.js:2504:10)==== async task ====
Error
    at [object Object].<anonymous> (C:\automation\tests\testCases\newApp\calendarTC.js:380:5)
    at [object Object].jasmine.Env.describe_ (C:\automation\npm\node_modules\protractor\node_modules\minijasminenode\lib\jasmine-1.3.1.js:913:21)
    at [object Object].jasmine.Env.describe (C:\automation\npm\node_modules\protractor\node_modules\minijasminenode\lib\jasmine-1.3.1.js:898:15)
    at describe (C:\automation\npm\node_modules\protractor\node_modules\minijasminenode\lib\jasmine-1.3.1.js:658:27)
    at Object.<anonymous> (C:\automation\tests\testCases\newApp\calendarTC.js:1:63)
故障:
1) 测试用例拉动-临街卫生测试临街-日历测试用例新应用程序-日历-打印日历
信息:
错误:等待在30000ms后超时
堆栈跟踪:
错误:等待在30000ms后超时
位于C:\automation\npm\node\u modules\dragrator\node\u modules\selenium webdriver\lib\webdriver\promise.js:1630:20
在[object object].promise.ControlFlow.runInFrame\uC:\automation\npm\node\U modules\Gragrator\node\U modules\selenium webdriver\lib\webdriver\promise.js:1877:20)
位于[object object].promise.Callback\uUg.goog.defineClass.notify(C:\automation\npm\node\u modules\Gragrator\node\u modules\selenium webdriver\lib\webdriver\promise.js:2464:25)
在[object object].promise.promise.notify(C:\automation\npm\node\u modules\dragrator\node\u modules\selenium webdriver\lib\webdriver\promise.js:563:12)
at Array.forEach(本机)
位于Object.goog.array.forEach(C:\automation\npm\node\u modules\dragrator\node\u modules\selenium webdriver\lib\goog\array\array.js:203:43)
在[object object].promise.promise.notifyAll(C:\automation\npm\node\u modules\dragrator\node\u modules\selenium webdriver\lib\webdriver\promise.js:552:16)
在goog.async.run.processWorkQueue(C:\automation\npm\node\u modules\dragrator\node\u modules\selenium webdriver\lib\goog\async\run.js:125:21)
发件人:任务:
在[object object].promise.ControlFlow.wait(C:\automation\npm\node\u modules\dragrator\node\u modules\selenium webdriver\lib\webdriver\promise.js:1617:15)
在[object object].webdriver.webdriver.wait(C:\automation\npm\node\u modules\dragrator\node\u modules\selenium webdriver\lib\webdriver\webdriver.js:714:21)
在[对象]。(C:\automation\tests\testCases\newApp\calendarTC.js:382:23)
在C:\automation\npm\node\u modules\dragrator\node\u modules\jasminewd\index.js:94:14
在[object object].promise.ControlFlow.runInFrame\uC:\automation\npm\node\U modules\Gragrator\node\U modules\selenium webdriver\lib\webdriver\promise.js:1877:20)
在[object object].promise.ControlFlow.runEventLoop\uC(C:\automation\npm\node\U modules\Drugator\node\U modules\selenium webdriver\lib\webdriver\promise.js:1755:8)
在[对象]。(C:\automation\npm\node\u modules\dragrator\node\u modules\selenium webdriver\lib\webdriver\promise.js:2056:12)
在goog.async.run.processWorkQueue(C:\automation\npm\node\u modules\dragrator\node\u modules\selenium webdriver\lib\goog\async\run.js:125:21)
在runMicrotasksCallback上(node.js:337:7)
在进程中调用(node.js:355:11)
From:Task:Asynchronous test function:it()
在[对象]。(C:\automation\npm\node\u modules\dragrator\node\u modules\jasminewd\index.js:93:33)
在[对象]。(C:\automation\npm\node\u modules\dragrator\node\u modules\minijasminenode\lib\async callback.js:45:37)
在[object object].jasmine.Block.execute(C:\automation\npm\node\u modules\dragrator\node\u modules\minijasminenode\lib\jasmine-1.3.1.js:1174:17)
在[object object].jasmine.Queue.next(C:\automation\npm\node\u modules\dragrator\node\u modules\minijasminenode\lib\jasmine-1.3.1.js:2209:31)
在[object object].jasmine.Queue.start(C:\automation\npm\node\u modules\dragrator\node\u modules\minijasminenode\lib\jasmine-1.3.1.js:2162:8)
在[object object].jasmine.Spec.execute(C:\automation\npm\node\u modules\dragrator\node\u modules\minijasminenode\lib\jasmine-1.3.1.js:2503:14)
在[object object].jasmine.Queue.next(C:\automation\npm\node\u modules\dragrator\node\u modules\minijasminenode\lib\jasmine-1.3.1.js:2209:31)
完成时(C:\automation\npm\node\u modules\dragrator\node\u modules\minijasminenode\lib\jasmine-1.3.1.js:2205:18)
在[object object].jasmine.Spec.finish(C:\automation\npm\node\u modules\dragrator\node\u modules\minijasminenode\lib\jasmine-1.3.1.js:2477:5)
在[object object].onComplete(C:\automation\npm\node\U modules\Graptor\node\U modules\minijasminenode\lib\jasmine-1.3.1.js:2504:10)==异步任务====
错误
在[对象]。(C:\automation\tests\testCases\newApp\calendarTC.js:380:5)
在[object object].jasmine.Env.descripe(C:\automation\npm\node\u modules\dragrator\node\u modules\minijasminenode\lib\jasmine-1.3.1.js:913:21)
在[object object].jasmine.Env.descripe(C:\automation\npm\node\u modules\dragrator\node\u modules\minijasminenode\lib\jasmine-1.3.1.js:898:15)
at描述(C:\automation\npm\node\u modules\dragrator\node\u modules\minijasminenode\lib\jasmine-1.3.1.js:658:27)
反对。(C:\automation\tests\testCases\newApp\calendarTC.js:1:63)

您可以使用
fs.readdir
获取所有文件名,然后使用正则表达式检查它们与您试图匹配的内容

it('New App - Calendar - Print calendar', function(){
   $$("button.font-xs.md-button.ng-scope.md-ink-ripple.gray-btn").get(1).click();
   browser.driver.wait(function() {
      var filepath = 'c:\\automation\\tests\\downloaded\\';
      var matcher = /Schedule/;
      var foundFile = false;
      fs.readdirSync(filepath).forEach(function(filename) {
          if (matcher.test(filename)) {
             foundFile = true;
           }
       });
       return foundFile;
   }, 30000);
});

您可以使用
fs.readdir
获取所有文件名,然后使用正则表达式检查它们与您试图匹配的内容

it('New App - Calendar - Print calendar', function(){
   $$("button.font-xs.md-button.ng-scope.md-ink-ripple.gray-btn").get(1).click();
   browser.driver.wait(function() {
      var filepath = 'c:\\automation\\tests\\downloaded\\';
      var matcher = /Schedule/;
      var foundFile = false;
      fs.readdirSync(filepath).forEach(function(filename) {
          if (matcher.test(filename)) {
             foundFile = true;
           }
       });
       return foundFile;
   }, 30000);
});

非常感谢,你真棒!非常感谢,你真棒!