testcafe - 如何断言包含在 html 正文中的文本

Gau*_*rav 3 javascript automated-tests assert e2e-testing testcafe

我正在使用 testcafe 进行 api 测试,但是我们的 api 需要登录。下面是我的代码。我可以很好地看到 json 响应。但我不确定如何在页面上断言。

import { Selector } from 'testcafe';

import Page from './page';
// Page model
const page = new Page();
const url = 'https://myexample.com';

const elementWithIdOrClassName = Selector(value => {
  return document.getElementById(value) || document.getElementsByTagName(value);
});

fixture `Test`
    .page(url + '/talent/career')
    .beforeEach( async t => {
      await t
      .typeText(page.username, 'gvp50')
      .typeText(page.password, 'password')
      .click(page.login_button)
    });



// Tests
test('Text typing basics', async t => {
    await t
      .navigateTo(url+'/api/learner/learning_items')
      .expect(Selector('html')).contains('learning_items');
});
Run Code Online (Sandbox Code Playgroud)

运行此代码后,Testcafe 挂起。我也试过 Selector('body') 但它不起作用。

Ale*_*kin 5

您需要指定要获取(验证)的元素属性(状态)。

在您选择了整个 'html' 元素(Selector('html'))后,指定您想要访问的属性(状态)(属性、子节点、样式、大小等)。请参阅DOM 节点状态主题以了解更多信息。

看起来您想按如下方式访问文本内容:

.expect(Selector('html').textContent).contains('learning_items');
Run Code Online (Sandbox Code Playgroud)

但是,这种选择器使用不太可能是挂起的原因,因为 TestCafe 会正确显示有关无效选择器使用的消息。您可能希望简化测试和/或调试它以找出导致挂起的原因。