【问题标题】:How to use browser.wait command in Protractor?如何在量角器中使用 browser.wait 命令?
【发布时间】:2018-07-29 04:28:30
【问题描述】:

我在 json 文件中有我的测试数据(元素查找器和元素 ID),并在我的测试脚本中解析以执行测试。我在这里遇到的问题是,我将 browser.sleep 放在每个元素之后,以便在 DOM 上出现相应的元素。但我想用 browser.wait 替换 browser.sleep,因为 browser.sleep 不是最佳做法。下面是我的代码。请提供您的建议如何用等待命令替换 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();
            })
        },

【问题讨论】:

标签: javascript node.js selenium protractor


【解决方案1】:

您可以编写自定义等待函数作为测试工具,也可以直接编写。为此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
)

【讨论】:

  • 虽然此代码可能会回答问题,但提供有关此代码为何和/或如何回答问题的额外上下文可提高其长期价值。
  • 正如我在主帖中提到的,browser.sleep 不是一个好习惯。为避免这种情况,我正在使用 browser.wait。请在下面找到我使用 browser.wait 的代码。 const EC = protractor.ExpectedConditions; browser.wait(EC.presenceOf($(myPlan.elements().btnNext)), 5000);
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-31
  • 2015-08-20
相关资源
最近更新 更多