#jasmine #protractor
#jasmine #транспортир
Вопрос:
Я столкнулся с проблемой в моем коде protractor, хотя мой код выглядит нормально без каких-либо проблем. Может ли кто-нибудь, пожалуйста, помочь мне разобраться в проблеме.
Код страницы входа
var action=require("/Users/satish/eclipse-workspace/Upshot-Protractor/src/main/java/com/upshot/surveys/Utilities/Actions.js");
var loginPage=function(){
var user=By.id("LoginForm_username");
var pass=By.id("LoginForm_password");
var submit=By.id("login_submit");
var localvar=this;
this.userfield=function(locator){
return element(locator);
}
this.passfield=function(locator){
return element(locator);
}
this.loginButton=function(locator){
return element(locator);
}
this.loginFun=function(username,password){
action.passdata(localvar.userfield(user),username);
action.passdata(localvar.passfield(pass),password);
}
}
module.exports=new loginPage();
Моя библиотека функций (Actions.js )
var Base=require("/Users/satish/eclipse-workspace/Upshot-Protractor/src/main/java/com/upshot/surveys/Utilities/Base.js");
var PropertiesReader=require("properties-reader");
var properties=PropertiesReader("/Users/satish/eclipse-workspace/Upshot-Protractor/src/main/java/com/upshot/surveys/Utilities/Objects.properties");
var spage=require("/Users/satish/eclipse-workspace/Upshot-Protractor/src/main/java/com/upshot/surveys/Pages/SurveysPage.js");
var Actions=function(){
this.clickOnElement=function(element){
element.click();
}
this.passdata=function(element,text){
element.sendKeys(text);
}
}
module.exports=new Actions();
мой базовый файл
var spage=require("/Users/satish/eclipse-workspace/Upshot-Protractor/src/main/java/com/upshot/surveys/Pages/SurveysPage.js");
var PropertiesReader=require("properties-reader");
var properties=PropertiesReader("/Users/satish/eclipse-workspace/Upshot-Protractor/src/main/java/com/upshot/surveys/Utilities/Objects.properties");
var LoginMod=require("/Users/satish/eclipse-workspace/Upshot-Protractor/src/main/java/com/upshot/surveys/Pages/loginPage.js");
var Action=require("/Users/satish/eclipse-workspace/Upshot-Protractor/src/main/java/com/upshot/surveys/Utilities/Actions.js")
var base=function(){
var local=this;
this.browserInit=function(url){
browser.ignoreSynchronization=true;
browser.get(url);
browser.manage().window().maximize();
browser.sleep(2000);
}
beforeAll(function(){
local.browserInit("https://***.****.com/site/login");
LoginMod.loginFun("dsfdsf","fdf");
});
}
module.exports=new base();
Мой журнал ошибок
Message:
Failed: action.passdata is not a function
Stack:
TypeError: action.passdata is not a function
at loginPage.loginFun (/Users/satish/eclipse-workspace/Upshot-Protractor/src/main/java/com/upshot/surveys/Pages/loginPage.js:22:17)
at UserContext.<anonymous> (/Users/satish/eclipse-workspace/Upshot-Protractor/src/main/java/com/upshot/surveys/Utilities/Base.js:19:17)
at /usr/local/lib/node_modules/protractor/node_modules/jasminewd2/index.js:112:25
at new ManagedPromise (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:1077:7)
at ControlFlow.promise (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2505:12)
at schedulerExecute (/usr/local/lib/node_modules/protractor/node_modules/jasminewd2/index.js:95:18)
at TaskQueue.execute_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:3084:14)
at TaskQueue.executeNext_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:3067:27)
at asyncRun (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2974:25)
at /usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:668:7
From: Task: Run beforeAll in control flow
at UserContext.<anonymous> (/usr/local/lib/node_modules/protractor/node_modules/jasminewd2/index.js:94:19)
at Jasmine.execute (/usr/local/lib/node_modules/protractor/node_modules/jasmine/lib/jasmine.js:200:12)
at /usr/local/lib/node_modules/protractor/built/frameworks/jasmine.js:132:15
at Function.promise (/usr/local/lib/node_modules/protractor/node_modules/q/q.js:682:9)
From asynchronous test:
Error
at new base (/Users/satish/eclipse-workspace/Upshot-Protractor/src/main/java/com/upshot/surveys/Utilities/Base.js:17:5)
at Object.<anonymous> (/Users/satish/eclipse-workspace/Upshot-Protractor/src/main/java/com/upshot/surveys/Utilities/Base.js:23:16)
at Module._compile (internal/modules/cjs/loader.js:701:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:712:10)
at Module.load (internal/modules/cjs/loader.js:600:32)
at tryModuleLoad (internal/modules/cjs/loader.js:539:12)
at Function.Module._load (internal/modules/cjs/loader.js:531:3)
at Module.require (internal/modules/cjs/loader.js:637:17)
at require (internal/modules/cjs/helpers.js:22:18)
если вы посмотрите журнал ошибок, там указано, что ошибка «не является функцией», даже несмотря на то, что в файлах js есть функции, и я объявляю требование файла js и вызываю эти функции с помощью var файлов js..
Файл спецификации
var functionlib=require("/Users/satish/eclipse-workspace/Upshot-Protractor/src/main/java/com/upshot/surveys/Utilities/Actions.js");
var PropertiesReader=require("properties-reader");
var properties=PropertiesReader("/Users/satish/eclipse-workspace/Upshot-Protractor/src/main/java/com/upshot/surveys/Utilities/Objects.properties");
var surveyPage=require("/Users/satish/eclipse-workspace/Upshot-Protractor/src/main/java/com/upshot/surveys/Pages/SurveysPage.js");
var loginpage=require("/Users/satish/eclipse-workspace/Upshot-Protractor/src/main/java/com/upshot/surveys/Pages/loginPage.js");
var base=require("/Users/satish/eclipse-workspace/Upshot-Protractor/src/main/java/com/upshot/surveys/Utilities/Base.js");
describe("this is a test method",function(){
var title;
it("this is a test move to the dashboard",function(){
title=browser.getTitle().then(function(Pagetitle){
return Pagetitle;
});
});
});
Конфигурационный файл
var PropertiesReader=require("properties-reader");
var properties=PropertiesReader("/Users/satish/eclipse-workspace/Upshot-Protractor/src/main/java/com/upshot/surveys/Utilities/Objects.properties");
exports.config={
seleniumAddress:"http://localhost:4444/wd/hub",
capabilities:{
browserName:properties.get("browser"),
},
params:{
username:'mdtutorial01@gmail.com',
password:'test'
},
//suites:{
// surveys:['/Users/satish/eclipse-workspace/Upshot-Protractor/src/main/java/com/upshot/surveys/Pages/SurveyTest.js']
//,
specs:properties.get("specs") "SurveyNav.js",
framework:"jasmine"
}
Комментарии:
1. ну, Base.login определенно не является функцией — не уверен, почему другая не является
2. да, я обновляю код, но все равно получаю действие.passdata не является функциональной ошибкой
3. вы все еще получаете
Error at new base
, хотя4. Да, это то, что я не понимаю, в чем проблема .. если вы сможете найти, пожалуйста, помогите мне в этом
5. но он просто говорит «Ошибка», не указывая, что это за ошибка