gpt4 book ai didi

typescript - Cypress +TS : Get text from HTMLelement

转载 作者:行者123 更新时间:2023-12-02 20:13:28 26 4
gpt4 key购买 nike

我正在合作:

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 文本?或者我可能会习惯于这方面的困难逻辑?如果是,请给我一个想法,如何更好地解决它。

最佳答案

我认为基本问题是 .each() 迭代找到的元素列表,因此在 each() 函数中一次只能获取一个元素,但内部代码使用 .get() ,就好像 elem 是一个元素数组。

您可能会发现使用 .then(elems => {...}) 更容易。

我使用数组映射来获取文本值数组,使用 native textContent (引用 Node.textContent )和扩展运算符来转换 cy.get() 的结果 到与 .map() 一起使用的数组。

it('should...', () => {
...
cy.get('div[class="name"] > a > u').then(elems => {

const texts = [...elems].map(el => el.textContent.trim());
let i = 0;
if (texts[i] === 'My text') {
...
}
else {
...
}
});

另外 if(expect(i).to.be.oneOf([8, 16, 24])) 可能不是一个好主意,因为 expect 有一面影响。我将使用一个简单的 bool 表达式,例如其中的 if([8, 16, 24].includes(i))expect

关于typescript - Cypress +TS : Get text from HTMLelement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52950149/

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