在量角器中获取“ x”不是函数错误

时间:2019-03-22 05:03:31

标签: 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文件的要求并用js文件的var调用了这些函数”,但仍显示“不是函数”错误。

规范文件

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"
}

0 个答案:

没有答案