小编dar*_*usz的帖子

如何访问测试库中被多个元素破坏的文本

这是我的代码示例

<div class="dropdown" data-testid="dropdown">
  <div class="option" data-testid="option">
   <b>[AF]</b> Afghanistan
  </div>
  <div class="option" data-testid="option">
   <b>[AL]</b> Albania
  </div>
  <div class="option" data-testid="option">
   <b>[DZ]</b> Algeria
  </div>
 </div>
Run Code Online (Sandbox Code Playgroud)

我需要做的是通过文本访问第一个元素以触发 userEvent.selectOptions

const dropdown = getByTestId('dropdown');
userEvent.selectOptions(dropdown, screen.getByText('[AF] Afghanistan'))
Run Code Online (Sandbox Code Playgroud)

我得到的是:

TestingLibraryElementError:无法找到带有文本的元素:[AF] 阿富汗。这可能是因为文本被多个元素分解。在这种情况下,您可以为文本匹配器提供一个函数,以使您的匹配器更加灵活。

显然是因为我试图查询的文本被元素破坏了。

请注意,这不是一个选择/选项下拉列表,它没有任何可访问的角色,所以我只能通过 screen.getByText 查询它

unit-testing jestjs testing-library

17
推荐指数
1
解决办法
3万
查看次数

使用 Svelte 进行表格分页

我正在开始研究用 Svelte 构建的项目,之前从未使用过 Svelte。我正在构建带有分页的表格,目前遇到的问题是我不知道如何实现分页按钮来显示不同的行。有什么建议我下一步应该做什么吗?

<script>
  import { onMount } from "svelte";
  
  import Header from "./components/Header.svelte";
  import Row from "./components/Row.svelte";
  import Footer from "./components/Footer.svelte";
  import Overlay from "./components/Overlay.svelte";

  let rows = [];
  let page = 0;
  let totalPages = [];
  let currentPageRows = [];
  let itemsPerPage = 5;
  let loading = true;

  const paginate = (items) => {
    const pages = Math.ceil(items.length / itemsPerPage);

    const paginatedItems = Array.from({ length: pages }, (_, index) => {
      const start = index * itemsPerPage; …
Run Code Online (Sandbox Code Playgroud)

svelte

4
推荐指数
1
解决办法
3253
查看次数

标签 统计

jestjs ×1

svelte ×1

testing-library ×1

unit-testing ×1