我有几个量角器/ angularjs它会重复我想要放在函数中的相同代码。我想只是调用函数而不是一遍又一遍地重复这个。
it('should move directly to Draft', function() {
posting_sum_page.locate_action_button.click();
posting_action_page.move_action.filter(function(elem) {
return elem.getText().then(function(text) {
return text === 'Draft';
});
}).click();
});
块的这一部分是我想要为其创建函数的重复部分。我是javascript的新手,所以这就是我不知道如何做到这一点。
return elem.getText().then(function(text) {
return text === 'Draft';
});
}).click();
我需要能够替代'草稿'有不同的变数。我正在使用页面对象作为其中的一部分,我不确定A)如何创建这样的函数并传入我的文本& B)是否应该在规格方面或页面方面?这对大多数人来说可能是非常基本的。但由于我是javascript的新手,我无法绕过这个问题。
答案 0 :(得分:0)
也许是这样的?
describe('...something...', function()
{
var clickBtn;
beforeEach(function()
{
clickBtn = function(testText)
{
return posting_action_page.move_action.filter(function(elem)
{
return elem.getText().then(function(currentText)
{
return currentText === testText;
});
}).click();
};
});
it('should move directly to Draft', function()
{
posting_sum_page.locate_action_button.click();
expect(clickBtn('Draft')).toEqual('...something...');
});
});
答案 1 :(得分:0)
如果您只想重复使用返回块
<LLVM root>/lib/Transform/CMakeLists.txt
答案 2 :(得分:0)
我会将整个过滤功能提取到&#34;助手&#34;模块。
helpers.js:
var Helpers = function () {
this.filterByText = function (text) {
return function (elem) {
return elem.getText().then(function(actualText) {
return actualText === text;
});
};
}
}
module.exports = new Helpers();
测试中的用法:
var helpers = require("helpers");
describe("My Test", function () {
it('should move directly to Draft', function() {
posting_sum_page.locate_action_button.click();
posting_action_page.move_action.filter(helpers.filterByText('Draft')).click();
});
});
答案 3 :(得分:0)
我不确定SyntaxError: JSON.parse: unexpected end of data at line 1 column 1 of the JSON data
的页面对象类型是什么,但我认为您正在寻找的是使用by.buttonText或by.linkText。
<asp:CustomValidator ID="cvdPhoneNumber" runat="server" Display="Dynamic" ForeColor="Red" ControlToValidate="txtPhoneNumber" ClientValidationFunction="validatePhoneNumber" ErrorMessage="" />
还有其他定位器可能会有帮助,例如posting_action_page.move_action
和// html: <button>Draft</button>
element(by.buttonText('Draft')).click();
// html: <a href="">Draft</button>
element(by.linkText('Draft')).click();
。