如何使用量角器中的函数重用另一个js文件中的代码?

时间:2019-04-17 10:44:02

标签: javascript protractor

我有2个不同的js文件:abc.js和func_abc.js

以前,我将所有函数都写在abc.js中,并从同一文件中调用它。这样没问题。

但是由于它越来越大,我正考虑将其管理在单独的文件中,因为我也打算将其用于其他文件。

我不确定如何将我在func_abc.js中编写的函数调用为abc.js

我尝试使用export并要求,但是它说Title未定义。

文件func_abc.js:

Ca0 = 1
t = 10 
Nt= 11 
k = 0.1 
deltat = t/Nt
c = np.zeros(Nt)
c[-1] = Ca0
def differential(c, method = 'backwards'):
    if method == 'euler':
        euler = []
        for t in range(0, Nt):
            c[t] = c[t-1] - c[t-1] * k * deltat
            euler.append(c[t])
        #so i get initial value (1) in the list
        euler.insert(0, 1)
        return euler
    elif method == 'backwards':
        backwards = []
        for t in range(0, Nt):
            c[t] = c[t-1] * (1/(1+(k*deltat)))
            backwards.append(c[t])
        #so i get initial value (1) in the list
        backwards.insert(0, 1)
        return backwards

print (differential(c, method = 'euler'))

文件abc.js:

function Title(title) {

    patient.titleselect.click().then(function () {
        element(by.cssContainingText('mat-option',title)).click().then(function () {
                console.log("Successfully select title");

            });
    });
};

function Gender(sex) {
     element(by.cssContainingText('mat-radio-button',sex)).click().then(function () {
     console.log("Successfully select gender");       
    })
};

2 个答案:

答案 0 :(得分:3)

1)文件:func_abc.js

function Title(title) {

    patient.titleselect.click().then(function () {
        element(by.cssContainingText('mat-option',title)).click().then(function () {
                console.log("Successfully select title");

            });
    });
};

function Gender(sex) {
     element(by.cssContainingText('mat-radio-button',sex)).click().then(function () {
     console.log("Successfully select gender");       
    })
};

exports.Title = Title;
exports.Gender = Gender;

2)文件:abc.js

const { Title, Gender } = require('./func_abc.js');

it('Create new patient', function(){

    Title("Mr");
    Gender("M");
}

答案 1 :(得分:2)

除了@yong的答案外,建议使用页面对象模式进行更好的代码维护。除了直接导出方法外,还可以为应用程序中的各个页面创建单独的模块,然后将类文件导出到相应的规范文件中。看下面的示例代码。

ProfilePage.js

bin/java

spec.js

var profilePage = function() {

   this.Title = function(title) {
     element(by.cssContainingText('mat-option', title)).click().then(function(){
         console.log("Successfully select title");
     });
   }

   function Gender(sex) {
     element(by.cssContainingText('mat-radio-button',sex)).click().then(function () {
        console.log("Successfully select gender");       
     });
   };

}
module.exports = new profilePage();