gpt4 book ai didi

protractor - 如何向 Protractor 全局添加自定义定位器?

转载 作者:行者123 更新时间:2023-12-04 23:01:02 30 4
gpt4 key购买 nike

我为 Protractor 编写了一个自定义定位器,可以找到 anchor元素由他们 ui-sref值(value)。在我的规范中,我刚刚使用了 by.addLocator添加自定义定位器,但我认为发布并让其他人使用它可能是一件很酷的事情。

目标是将此自定义定位器添加到全局 Protractor 对象,以便它可以在您的任何规范中使用。

我最初的方法是在 onPrepare 中添加这个功能。 Protractor 配置块。类似于下面的伪代码:

onPrepare: function () {
require('ui-sref-locator')(protractor); // The protractor object is available here.
}

那个 require 语句只会执行这个函数:

function (ptorInstance) {
ptorInstance.by.addLocator('uiSref', function (toState, opt_parentElement) {
var using = opt_parentElement || document;
var possibleAnchors = using.querySelectorAll('a[ui-sref="' + toState +'"]');
var result = undefined;

if (possibleAnchors.length === 0) {
result = null;
} else if (possibleAnchors.length === 1) {
result = possibleAnchors[0];
} else {
result = possibleAnchors;
}

return result;
});
};

问题是 by未在 protractor 上定义 onPrepare 中可用的对象堵塞。这意味着我不能使用 .addLocator方法。

最佳答案

请尝试以下操作:

function () {
by.addLocator('uiSref', function (toState, opt_parentElement) {
...

By 应该在全局范围内。

关于protractor - 如何向 Protractor 全局添加自定义定位器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24458975/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com