Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在量角器中使用browser.wait命令?_Javascript_Node.js_Selenium_Protractor - Fatal编程技术网

Javascript 如何在量角器中使用browser.wait命令?

Javascript 如何在量角器中使用browser.wait命令?,javascript,node.js,selenium,protractor,Javascript,Node.js,Selenium,Protractor,我在json文件中有测试数据元素查找器和元素ID,并在测试脚本中进行解析以执行测试。我在这里遇到的问题是,我将browser.sleep放在每个元素之后,以便相应的元素出现在DOM上。但是我想用browser.sleep替换browser.wait,因为browser.sleep不是最佳做法。下面是我的代码。请给出如何用wait命令替换browser.sleep的建议 var controlData = require("../../TestData/EmailForm/e2e_Test.jso

我在json文件中有测试数据元素查找器和元素ID,并在测试脚本中进行解析以执行测试。我在这里遇到的问题是,我将browser.sleep放在每个元素之后,以便相应的元素出现在DOM上。但是我想用browser.sleep替换browser.wait,因为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();
            })
        },

您可以编写自定义等待函数作为测试的UTIL,也可以直接编写。为此,量角器提供功能

第一个参数是函数谓词,您可以查看名称空间中的预定义函数

第二个是可选的,定义等待条件为真的时间

第三个也是可选的,定义等待超时时要使用的消息

browser.wait(
  ExpectedConditions.presenceOf(your_element),
  how_long_you_want_to_wait_in_ms
  optional_third_parameter_could_be_error_message
)

使用While此代码可以回答问题,并提供有关此代码为什么和/或如何回答问题的其他上下文,以提高其长期价值。正如我在主要帖子中提到的,browser.sleep不是一个好的做法。为避免我正在使用browser.wait。请在下面找到我使用的浏览器的代码。请稍候。常数EC=量角器。预期条件;browser.waitEC.presenceOf$myPlan.elements.btnNext,5000;