如何解决运行量角器时未找到规格
STEP: 1.量角器。\ conf \ conf.js
o / p:
> PS D:\CHOR-3823\LatestAutomation\PROJECTS\EVAutomation> protractor .\conf\conf.js
[18:12:11] I/launcher - Running 1 instances of WebDriver
[18:12:11] I/direct - Using ChromeDriver directly...
DevTools listening on ws://127.0.0.1:53625/devtools/browser/6885cfd9-3e30-42c9-b866-cbc7a01db67d
[29324:12112:0828/181212.692:ERROR:device_event_log_impl.cc(208)] [18:12:12.693] Bluetooth: bluetooth_adapter_winrt.cc:1164 RequestRadioAccessAsync failed: RadioAccessStatus::DeniedByUserWill not be able to change radio power.
User Name Locator is : //input[@placeholder='Username']
User Pass Locator is : //input[@placeholder='Password']
User Sign IN Locator is : Sign In
Started
Suite started: Login test whose full description is: Login test
Suitename is:Login test
directory created..
suitename is:login
Directory path is:logs\2020\8\28\Login test\login_20200828124213.log
Log Folder Link : ftp:\1.1.1.8\mnt.\logs\2020\8\28\Login test\login_20200828124213.log
myLogger....
No specs found
Finished in 0.009 seconds
priting json data....
Email report<html.html> saved successfully..
[18:12:13] I/launcher - 0 instance(s) of WebDriver still running
注意:-表示未找到任何规格。但是实际上它在规范内,并且正在从规范文件所使用的页面目录中打印一些消息。但是它无法调用该页面文件的任何方法,并且在此之后它就不再执行并说没有发现斑点。
请找到conf.js代码:
require("@babel/register")({
presets: ["@babel/preset-env"],plugins: [["@babel/transform-runtime"]]
});
var jasmineReporters = require("jasmine-reporters");
var htmlReporter = require("protractor-html-reporter-2");
var jasmineSpecReporter = require("jasmine-spec-reporter");
var screenshots = require('protractor-take-screenshots-on-demand');
var fs = require("fs-extra");
var nodemailer = require("nodemailer");
var EmailTemplate = require("email-templates").EmailTemplate;
const Logger = require("../utils/logger.js");
var ejs = require("ejs");
var fs = require("fs");
var xml2js = require("xml2js");
exports.config = {
framework: "jasmine",directConnect: true,// suites: {
//loginswilite : "src/testcases/sweliteLogin/*.js"
//DeviceSWeLite : "src/testcases/Devicelogin/*.js"
//DevicePageGUI : "src/testcases/DeviceGUI/*.js"
//RebootDevice: "src/testcases/Rebootdevice/*.js"
//Run_Health_Report : "src/testcases/HealthReport/*.js"
//Delete_Undelete_Device : "src/testcases/DeleteAndUndelete/*.js"
//Backup_and_Restore_Config : "src/testcases/BackupAndRestore_Config/*.js"
// login_spec :"../tests/login_spec/*.js"
//Bulk_Add_user : "src/testcases/BulkAdduser/*.js"
//login: ["src/testcases/login/*.js","src/testcases/Add_collection_move_device/*.js"]
//sanity: ["src/testcases/login/*.js","src/testcases/collection/*.js"]
//src/testcases/DeleteAndUndelete/*.js
specs: [
'D:\\CHOR-3823\\LatestAutomation\\PROJECTS\\EVAutomation\\tests\\login_spec.js'
],// },SELENIUM_PROMISE_MANAGER: false,capabilities: {
//browserName: "firefox",//acceptInsecureCerts: true,browserName: "chrome",chromeOptions: {
args: ["--start-maximized","--ignore-certificate-errors"]
}
},// Options to be passed to Jasmine-node.
jasmineNodeOpts: {
onComplete: null,// If true,display spec names.
isVerbose: false,print colors to the terminal.
showColors: true,include stack traces in failures.
includeStackTrace: true,// Default time to wait in ms before a test fails.
defaultTimeoutInterval: 1200000
},onPrepare: function () {
"use strict";
browser.ignoreSynchronization = true;
// jasmine.getEnv().addReporter(new HtmlReporter({
// baseDirectory: 'reports'
// }).getJasmine2Reporter());
browser.timeStamp = new Date()
.toISOString()
.replace(/T/,"") // replace T with a space
.replace(/\..+/,"")
.split("-")
.join("")
.split(":")
.join("");
jasmine.getEnv().addReporter(
new jasmineReporters.JUnitXmlReporter({
consolidateAll: true,savePath: "./reports/xml",filePrefix: "xmlresults"
})
);
screenshots.browserNameJoiner = ' - ';
screenshots.screenShotDirectory = 'target/screenshots';
screenshots.createDirectory();
jasmine.getEnv().addReporter({
suiteStarted: function (result) {
browser.suiteName = result.fullName;
console.log(
"Suite started: " +
result.description +
" whose full description is: " +
result.fullName
);
},specStarted: function (result) {
//Logger initialiation for test case
browser.testcaseName = result.description;
browser.logger = new Logger();
browser.logDir = browser.logger.getLogDir();
browser.logFolderLink = browser.logger.getLogFolderLink();
},specDone: function (result) {
console.log("Test Completed:" + result.fullName);
if (result.status == "failed") {
browser.logger.result(result.status.toUpperCase());
result.failedExpectations.forEach(element => {
browser.logger.error(element.stack);
});
}
browser.logger.result(result.status);
browser.getCapabilities().then(function (caps) {
var browserName = caps.get("browserName");
browser.takeScreenshot().then(function (png) {
var stream = fs.createWriteStream(
"./reports/" +
browserName +
"/screenshots/" +
browserName +
"-" +
result.fullName +
".png"
);
stream.write(Buffer.from(png,"base64"));
stream.end();
});
});
}
});
},onComplete: function () {
var browserName,browserVersion;
var capsPromise = browser.getCapabilities();
capsPromise.then(function (caps) {
browserName = caps.get("browserName");
browserVersion = caps.get("version");
platform = caps.get("platform");
testConfig = {
reportTitle: "Protractor Test Execution Report",outputPath: "./reports/",outputFilename: "ProtractorTestReport",screenshotPath: browserName + "/screenshots",testBrowser: browserName,browserVersion: browserVersion,modifiedSuiteName: false,screenshotsOnlyOnFailure: false,testPlatform: platform
};
new htmlReporter().from("./reports/xml/xmlresults.xml",testConfig);
});
var parser = new xml2js.Parser({ mergeAttrs: true,explicitArray: false });
var jsonData = "";
var myresult;
var xmlData = fs.readFileSync("./reports/xml/xmlresults.xml","utf8");
my_data = parser.parseString(xmlData,function (err,result) {
console.log("priting json data....");
//jsonData = JSON.stringify(result);
myresult = result;
});
var htmlContent = fs.readFileSync("./reports/template.ejs","utf8");
var htmlRenderized = ejs.render(htmlContent,{
filename: "./reports/template.ejs",jsonobject: myresult,timestamp: browser.timeStamp,logDir: browser.logDir
});
//console.log(htmlRenderized);
fs.writeFile("./reports/html.html",htmlRenderized,function (err) {
if (err) return console.log(err);
console.log("Email report<html.html> saved successfully.. ");
});
}
};
请找到login_spec.js的内容:
let inputPara = require('../object_repository/inputPageOR.json')
let loginpage = require('../pages/loginpage')
let Logger = require('../utils/logger.js')
describe('Login test',function () {
/* "use strict";
let logger;
beforeEach(function () {
logger = new Logger();
logger.setcurrentFile(__filename);
logger.info("Testcase :" + " " + browser.testcaseName + " " + "started");
logger.info(browser.logger.getLogDir() + "/" + browser.suiteName + "/" + browser.testcaseName + "/" + browser.timeStamp + '.' + 'log');
logger.info(browser.logger.getLogFolderLink() + "/" + browser.suiteName + "/" + browser.testcaseName + "/" + browser.timeStamp + '.' + 'log');
logger.info("Before Each: Opening Login Page");
}); */
it('login',function () {
let url = inputPara.openPage.url;
let userName = inputPara.login.username;
let password = inputPara.login.password;
// browser.waitForAngularEnabled(false);
// logger.info("opening EV GUI");
loginpage.get(url.toString());
loginpage.userName(userName.toString());
loginpage.userPassword(password.toString());
loginpage.buttonClick();
browser.sleep(2000)
});
});
请找到登录页面文件的内容:
let objRepo = require("../object_repository/commonPageOR.json");
let loginpage = function () {
//Fetching data from Json file for Locator
let uname= objRepo.loginPageValue.usernameInput
let upass= objRepo.loginPageValue.passwordInput
let uclick= objRepo.loginPageValue.submitButton
console.log("User Name Locator is : " + uname);
console.log("User Pass Locator is : " + upass);
console.log("User Sign IN Locator is : " + uclick);
let userName_input = element(by.xpath(uname.toString()));
let userPassword_input = element(by.xpath(upass.toString()));
let signInbutton = element(by.partialButtonText(uclick.toString()));
this.get = function (url) {
try{
browser.get(url);
}
catch(err){
console.log(err.stack());
}
}
this.userName = function (userName) {
try{
userName_input.clear();
userName_input.sendKeys(userName);
}
catch(err){
console.log(err.stack());
}
}
this.userPassword = function (password) {
try{
userPassword_input.clear();
userPassword_input.sendKeys(password);
}
catch(err){
console.log(err.stack());
}
}
this.buttonClick = function () {
try{
signInbutton.click();
}
catch(err){
console.log(err.stack());
}
}
}
module.exports = new loginpage();
请找到目录结构:
解决方法
对我来说,这似乎与配置文件中的规范有关
specs: [
'D:\\CHOR-3823\\LatestAutomation\\PROJECTS\\EVAutomation\\tests\\login_spec.js'
],
尝试给出类似的相对路径
specs: [
'../tests/login_spec/js'
],
应该可以
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。