2

我使用testcafe测试框架 - https://devexpress.github.io/testcafe
我写了以下代码:

const table = Selector('#table');

for(let i = 0; i < table.rows.length; i++){
   for(let j = 0; j < table.columns.length; j++) {
         let tdText = await table.rows[i].cells[j].textContent;
        //another actions
   }
}

如何使用 testcafe 获取表格中所有单元格的文本?

4

2 回答 2

8

Selector 提供方法和属性来选择页面上的元素并获取它们的状态,但没有“行”和“列”属性。

因此,请使用以下解决方案:

const table       = Selector('#table');
const rowCount    = await table.find('tr').count;
const columnCount = await table.find('tr').nth(0).find('td').count;

for(let i = 0; i < rowCount; i++) {
    for(let j = 0; j < columnCount; j++) {  
        let tdText = await table.find('tr').nth(i).find('td').nth(j).textContent;
        //another actions
    }
}

请注意,Selector 从 v0.11.0 开始提供 'find' 和 'nth' 功能(它将很快发布,但它还可以通过 npm "alpha" 标签获得)。

于 2016-12-07T13:54:56.550 回答
3

你需要所有的文本内容吗?在这种情况下,您可以使用ClientFunction

import { ClientFunction } from 'testcafe';

const getInnerText = ClientFunction(() => document.getElementById('table').innerText);

const text = await getInnerText();
于 2016-12-07T14:17:47.267 回答