我需要在页面上获得两个文本值列表,以便在不同的检查中使用它们。
我通过xpath实现
cy.xpath('//tbody/tr[position()<10]/td[6]/span').then(items => { cy.wrap(items).as('multipleList') }) cy.xpath('//tbody/tr[position()<21][position()>15]/td[6]/span').then(items => { cy.wrap(items).as('commaList') }) cy.get('@multipleList').each((qwer, index) => {..........}) cy.get('@commaList').each((qwer, index) => {..........})
但在使用第一个列表(@multipleList)后,它显示第二个列表(@commaList)为空的错误。文章源自玩技e族-https://www.playezu.com/179398.html
如果我交换它们,那么@commaList执行正常,但是@multipleList显示相同的错误。文章源自玩技e族-https://www.playezu.com/179398.html 文章源自玩技e族-https://www.playezu.com/179398.html
未知地区 2F
正如你所展示的测试,这是不可能的。
如果您有错误,则是在 .每个() 导致页面更改(第二个列表无效)。
尝试对命令重新排序
cy.xpath(‘//tbody/tr[position()<10]/td[6]/span’).as(‘multipleList’)
cy.get(‘@multipleList’).each((qwer, index) => {……….})
cy.xpath(‘//tbody/tr[position()<21][position()>15]/td[6]/span’).as(‘commaList’)
cy.get(‘@commaList’).each((qwer, index) => {……….})
未知地区 1F
只尝试一次组合选择和迭代
cy.xpath(‘//tbody/tr’).as(‘list’)
cy.get(‘@list’).each(($rows, rowIndex) => {
if (rowIndex < 9) {
const $span = $rows[index].find(‘td:eq(6) span’)
…
}
if (rowIndex > 14 && rowIndex < 20) {
const $span = $rows[index].find(‘td:eq(6) span’)
…
}
})