嗨,我正在尝试使用mocha chimp和webdriverio编写前端测试。因为我必须在字体结尾处理不同的id,所以在每个块中我必须为各种目的定义它们。我试图在describe块之外定义ID然后它显示浏览器没有定义。这是示例代码。
describe('password validation', function () {
it('password should be empty @watch ', function () {
const passwordInput = browser.element('#passwordInput');
assert.equal(passwordInput.getValue(),"");
});
it("should identify weak password @watch",function () {
const passwordInput = browser.element('#passwordInput');
passwordInput.setValue("helloWordl");
browser.waitForVisible(".has-warning",500);
passwordInput.setValue("helloWordl@3");
})
it("should identify miss matched and matched password @watch",function () {
const confirmpasswordInput = browser.element('#confirmpasswordInput');
confirmpasswordInput.setValue("adofidlf"); //miss matched password given
browser.waitForVisible(".has-error",50); //it should shows the error for worng password
confirmpasswordInput.setValue("helloWordl@3");
browser.waitForVisible(".has-success",50);
})
} )
任何人都可以告诉我如何在描述块之外定义变量,包括浏览器表示法,这样我就不需要每次在不同的描述块中定义它们。
您可以在describe
块中定义变量并使用beforeEach
进行初始化(来自mocha文档(https://mochajs.org/)):
describe('Connection', function() {
var db = new Connection,
tobi = new User('tobi'),
loki = new User('loki'),
jane = new User('jane');
beforeEach(function(done) {
db.clear(function(err) {
if (err) return done(err);
db.save([tobi, loki, jane], done);
});
});
describe('#find()', function() {
it('respond with matching records', function(done) {
db.find({type: 'User'}, function(err, res) {
if (err) return done(err);
res.should.have.length(3);
done();
});
});
});
});
您可以将id选择器定义为在describe外部的对象中的字符串。按照你的情况,它会
const target = {
input:{
password:'#passwordInput',
confirmPassword:'#confirmpasswordInput'
}
}
describe('something',()=>{console.log(target.input.password)})
! “浏览器”。命令无法在describe()之外运行,您需要为它描述当前文件测试用例名称并使用before()或beforeEach()来使用它。 describe()可以包含其他的nest describe()
describe('Test A',()=>{
var element = {}
before(()=>{
browser.url('...')
element['input']['password'] = browser.element('passwordInput')
})
describe('case A',()=>{
it('should empty',()=>{
assert.equal(element.input.password.getValue(),'')
})
})
})