TestCafe从元素获取文本

the*_*mes 4 javascript automated-tests web-testing e2e-testing testcafe

我正在尝试从Chrome上的模式获取文本。使用控制台,我可以获取内部文本,如下所示:

document.querySelector('.my-form > a').innerText
// returns http://a-url.com
Run Code Online (Sandbox Code Playgroud)

现在,在测试中,我可以使用

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

我什至可以点击该网址

await t.click(myText);
Run Code Online (Sandbox Code Playgroud)

但是例如,我不能将内部文本放入变量中。我尝试从这篇文章中使用ClientFunction

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
Run Code Online (Sandbox Code Playgroud)

并尝试使用普通选择器,如本文所建议

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

// prints: undefined
Run Code Online (Sandbox Code Playgroud)

如何从元素中提取文本?我了解t.selectText在这种情况下会受到限制,对吧?

ios*_*eph 5

从所需的文档中

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