【发布时间】:2019-03-27 18:09:28
【问题描述】:
我正在与:
Cypress.io 和 TypeScript。
我遇到了逻辑问题。
我想要做什么:
在几页中有元素列表。我想获取该元素列表并检查它们是否具有某种名称,如果其中一个具有该名称,请打开它。 我遇到了这样的问题,我无法从 HTML 元素中获取文本。这是我的代码:
it.only('should be able to open element', function () {
cy.get('.page-number').each(function () { // Using this to get all pages
cy.get('div[class="name"] > a > u').then(elem => { //Here I get elements with job names
console.log('1 ', elem.get(0)); //RESULT: only that one element name. Example:<u _ngcontent-c10="">Element 1</u>
console.log('2 ', elem.text()); //RESULT: all elements in a page as text
const textElem = elem.get(1);
let txt = +textElem;
console.log('3 ', textElem); //RESULT: tried to convert it like this. Example:<u _ngcontent-c10="">Element 1</u>
console.log('4 ', elem.get(0).text()); //RESULT: Error Message: TS2339: Property 'text' does not exist on type 'HTMLElement'.
let i = 0;
const jobName = elem.get(i);
console.log('3 ', elem.get(i));
if({HERE I WANT TO GET ELEMENT TEXT} === 'My text'){
//TODO
}
else{
if(expect(i).to.be.oneOf([8, 16, 24])){ //one page have 8 elements
cy.get('.page-number').click({multiple : true}); //one another page with elements
cy.log('ELEMENT WAS NOT FIND IN PAGE.');
}
i++;
}
});
});
})
问题: 在这种情况下如何获取 HTMLelement 文本? 或者我可能会在这方面习惯于困难的逻辑?如果是,请给我一个想法,如何更好地解决它。
【问题讨论】:
-
@emery 你删除了 Vilius 的一大段原始代码,这让事情变得相当混乱(原始代码提到了选择多个元素)。如果您想说明不同的场景,请发布(并回答)不同的问题。
标签: typescript get browser-automation cypress