当前位置: 首页 > 知识库问答 >
问题:

Testcafe从元素获取文本

曾骁
2023-03-14

我想从Chrome的模态中得到一条短信。使用控制台,我可以获得如下内部文本:

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

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

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

我甚至可以点击那个网址

await t.click(myText);

例如,我不能将内部文本放入变量。我试着使用这篇文章中的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

并尝试使用本文建议的普通选择器

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

// prints: undefined

如何从元素中提取文本?我知道t.selectText在这种情况下是有限的,对吗?

共有2个答案

喻昀
2023-03-14

这样就可以做到:

const paragraph      = Selector("p").withText("possible entries");
const extractEntries = await paragraph.textContent;
高祺
2023-03-14

从所需的文档中:

const text=等待选择器('.my form

 类似资料:
  • 我正在浏览一个包含几个元素的网页,我想在不包含其子元素的情况下获取其中的文本。 页面结构如下: 当我使用时,得到的结果是: 我正在使用BeautifulSoup4和Python3

  • 问题内容: 有没有一种方法来获取LinearLayout的子元素?我的代码返回一个视图(linearlayout),但是我需要访问布局内部的特定元素。 有什么建议? (是的,我知道我可以使用findViewById,但是我正在用Java创建布局/子级-而不是XML。) 问题答案: 您可以随时执行以下操作:

  • 问题内容: 您如何从内获得一个? 问题答案: var iframe = document.getElementById(‘iframeId’); var innerDoc = (iframe.contentDocument) ? iframe.contentDocument : iframe.contentWindow.document; 您可以更简单地写: 并将返回第一个有效的内部文档。 一旦获

  • 问题内容: 是否可以仅从父元素而不是Selenium中的子元素获取文本? 示例:假设我有以下代码: 用C#(或任何语言),我将有: 但是,链接文本将带有“ Google Link此链接会将您带到Google主页”。 如果不进行大量的字符串操作(例如获取所有子项的文本并从父项的结果文本中减去该文本),是否有办法从父项元素中仅获取文本? 问题答案: 这是一个常见的问题,因为您无法直接访问文本节点- 换

  • 在Selenium中,是否可以仅从父元素而不是其子元素获取文本? 例如:假设我有以下代码: 用C#(或任何语言),我将有: 然而,链接文本将有“谷歌链接”这个链接将带你进入谷歌主页 如果不进行一系列字符串操作(例如获取所有子元素的文本,并从父元素的结果文本中减去这些文本),有没有办法只从父元素获取文本?

  • 问题内容: 我只想从汤中最上面的元素中提取文本;但是汤.text也会给出所有子元素的文本: 我有 输出为。我只想“是”。 实现此目标的最佳方法是什么? 编辑 :我也想在解析’ ‘时输出。 问题答案: 那又如何呢? 编辑: 我想我已经了解了你现在想要的。尝试这个: