量角器 returns 一个对象,但预期 - element.getText() 的值
Protractor returns an object but expected - value of element.getText()
无法理解为什么它 return 一个对象不是文本的值,一些测试代码:
describe('columns swap', function () {
describe('location column ', function () {
it('should swap right', function () {
browser.sleep(10000);
var fColumn = element(by.xpath('(//*[@class="k-link"])[2]')).getText();
console.log(fColumn);
控制台输出:
> columns swap
> location column { ptor_: { controlFlow: [Function],
> schedule: [Function],
> getSession: [Function],
> getCapabilities: [Function],
> quit: [Function],
> actions: [Function],
> executeScript: [Function],
> executeAsyncScript: [Function],
> call: [Function],
> wait: [Function],
> sleep: [Function],
> getWindowHandle: [Function],
> getAllWindowHandles: [Function],
> getPageSource: [Function],
> close: [Function],
> getCurrentUrl: [Function], ...
此外,如果我将此部分与 expect() 一起使用:
expect(columnSorting.acpColumn.getText()).to.eventually.equal(fColumn);
我明白了:
1) columns swap location column should swap right:
AssertionError: expected 'Location' to equal { Object (ptor_, parentElement
ArrayFinder, ...) }
所以出于某种原因我可以从 expect 获取文本并且它是正确的 - 'Location'
我做错了什么?
getText()
returns一个承诺。如果你想记录一个实际值,你需要解决它:
element(by.xpath('(//*[@class="k-link"])[2]')).getText().then(function (value) {
console.log(value);
expect(columnSorting.acpColumn.getText()).to.eventually.equal(value);
});
请注意 expect()
在 protractor/jasminewd 中是 "patched" 以隐式解析承诺。换句话说,您可以断言 getText()
等于所需的文本:
expect(element(by.xpath('(//*[@class="k-link"])[2]')).getText()).toEqual('My Text');
无法理解为什么它 return 一个对象不是文本的值,一些测试代码:
describe('columns swap', function () {
describe('location column ', function () {
it('should swap right', function () {
browser.sleep(10000);
var fColumn = element(by.xpath('(//*[@class="k-link"])[2]')).getText();
console.log(fColumn);
控制台输出:
> columns swap
> location column { ptor_: { controlFlow: [Function],
> schedule: [Function],
> getSession: [Function],
> getCapabilities: [Function],
> quit: [Function],
> actions: [Function],
> executeScript: [Function],
> executeAsyncScript: [Function],
> call: [Function],
> wait: [Function],
> sleep: [Function],
> getWindowHandle: [Function],
> getAllWindowHandles: [Function],
> getPageSource: [Function],
> close: [Function],
> getCurrentUrl: [Function], ...
此外,如果我将此部分与 expect() 一起使用:
expect(columnSorting.acpColumn.getText()).to.eventually.equal(fColumn);
我明白了:
1) columns swap location column should swap right:
AssertionError: expected 'Location' to equal { Object (ptor_, parentElement
ArrayFinder, ...) }
所以出于某种原因我可以从 expect 获取文本并且它是正确的 - 'Location'
我做错了什么?
getText()
returns一个承诺。如果你想记录一个实际值,你需要解决它:
element(by.xpath('(//*[@class="k-link"])[2]')).getText().then(function (value) {
console.log(value);
expect(columnSorting.acpColumn.getText()).to.eventually.equal(value);
});
请注意 expect()
在 protractor/jasminewd 中是 "patched" 以隐式解析承诺。换句话说,您可以断言 getText()
等于所需的文本:
expect(element(by.xpath('(//*[@class="k-link"])[2]')).getText()).toEqual('My Text');