【问题标题】:Include Protractor as a javascript library in a webpage在网页中包含 Protractor 作为 javascript 库
【发布时间】:2014-03-19 14:10:40
【问题描述】:

据我了解,Protractor 旨在在 Node.js 服务器上的 WebDriver 之上运行并将命令发送到 selenium 服务器(如果我错了,请随时纠正我)。

无论如何,我想知道是否可以将 Protractor 作为 JavaScript 库加载到网页中(例如加载 jQuery),以便可以从页面中的 JavaScript 代码访问它。

可以吗?如果是这样,怎么做?我需要什么文件?什么依赖?

我的目标是利用它通过各种角度绑定来选择元素的能力,以及它等待角度事件的能力。

【问题讨论】:

    标签: angularjs selenium-webdriver functional-testing protractor


    【解决方案1】:

    我不认为你可以。您可以编写自己的定位器,或使用指令来隔离元素/绑定。另一件好事是深入研究量角器源代码,看看他们是如何做到的。特别是查看他们的clientsidescripts.js 文件。这是他们如何找到绑定的示例。你可以这样称呼它:findBindings('exampleBinding');

    clientSideScripts.findBindings = function() {
      var binding = arguments[0];
      var using = arguments[1] || document;
      var bindings = using.getElementsByClassName('ng-binding');
      var matches = [];
      for (var i = 0; i < bindings.length; ++i) {
        var dataBinding = angular.element(bindings[i]).data('$binding');
        if(dataBinding) {
          var bindingName = dataBinding.exp || dataBinding[0].exp || dataBinding;
          if (bindingName.indexOf(binding) != -1) {
            matches.push(bindings[i]);
          }
        }
      }
      return matches; // Return the whole array for webdriver.findElements.
    };
    

    【讨论】:

    • 谢谢,我最终使用了 clientsidescripts.js 并为其编写了一个类似于量角器中的 API - element(by.repeater(...))。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-22
    • 2017-08-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多