7 votes

Testcafe get text from element

J'essaie d'obtenir un texte à partir d'une modale sur Chrome. En utilisant la console, je peux obtenir le texte intérieur comme suit :

document.querySelector('.my-form > a').innerText
// returns http://a-url.com

Maintenant, sur mon test, je peux évaluer l'élément en utilisant

const myText = Selector('.my-form > a').innerText;
await t
  .expect(myText).contains('url');

et je peux même cliquer sur cette URL

await t.click(myText);

mais je ne peux pas mettre ce texte intérieur dans une variable, par exemple. J'ai essayé d'utiliser une ClientFunction de ce poste

const getUrl = ClientFunction(() => document.querySelector('.my-form > a').innerText);

test('My Test', async t => {
const text = await getUrl();
console.log(text);
});

// this results in 
// TypeError: Cannot read property 'innerText' of null

et j'ai essayé d'utiliser un simple Selector comme ce poste suggère

const text = Selector('.my-form > a').innerText;
const inner = await text.textContent;
console.log(inner);

// prints: undefined

Comment extraire un texte d'un élément ? Je comprends que t.selectText est limitée dans ce scénario, n'est-ce pas ?

11voto

ioseph Points 1308

De la documentation que vous voulez :

const text = await Selector('.my-form > a').innerText;

2voto

Zhivko.Kostadinov Points 151

Cela fera l'affaire :

const paragraph      = Selector("p").withText("possible entries");
const extractEntries = await paragraph.textContent;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X