gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 02:17:02 25 4
gpt4 key购买 nike

我尝试在“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)

最佳答案

您可以使用 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);
});

关于javascript - Node.JS - 如何在 JS 中对动态文件名进行验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35265402/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com