我在json文件中有我的测试数据(元素查找器和元素id),并在我的测试脚本中进行解析以执行测试。我在这里遇到的问题是,我在每个元素之后放置了browser.sleep,以便在DOM上发生相应的元素。但我想用browser.wait替换browser.sleep,因为browser.sleep不是最好的做法。下面是我的代码。请提出如何用wait命令替换browser.sleep的建议。
var controlData = require("../../TestData/EmailForm/e2e_Test.json");
var controlKeys;
var respose;
var testData;
function(callback){
controlKeys=["BtnEmailChkBox","BtnUpdate","TrueEmailGetAttribute"];
async.eachSeries(controlKeys,function(key,next){
commands.execute(testConfig,controlData[key],function(err,res){
respose = res[0].data;
testData = controlData[key].actions[0].data;
expect(respose).toEqual(testData);
browser.sleep(5000);
next();
});
},function(err){
callback();
})
},
答案 0 :(得分:0)
你可以编写自定义等待函数作为测试的utils,或者你可以直接编写它。为此,Protractor
提供browser.wait()
功能。
第一个参数是函数谓词,您可以查看ExpectedConditions命名空间中的预定义函数。
第二个是可选的,定义等待条件为真的时间。
第三个也是可选的,如果等待超时,则定义要使用的消息。
browser.wait(
ExpectedConditions.presenceOf(your_element),
how_long_you_want_to_wait_in_ms
optional_third_parameter_could_be_error_message
)