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

セレクターは、ページ上の要素を選択してその状態を取得するためのメソッドとプロパティを提供しますが、「行」および「列」のプロパティはありません。

したがって、次の解決策を使用してください。

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 に答える