【发布时间】:2021-04-20 06:46:39
【问题描述】:
我想单击 div 中名称为“name1”的元素,描述为“description1” 并且标题是使用柏树的“title1”。
下面是dom,
<div data-testid="table-body" role="rowgroup">
<div role="row" data-testid="table-row-0">
<div role="cell">
<input data-testid="table-row-checkbox"/>
</div>
<div data-testid="table-cell-row-0-column-name">
<button data-testid="expand-row"></button>
<a class="subtle-link">name1</a>
</div>
<div data-testid="table-cell-row-0-column-description">
description1
</div>
<div data-testid="table-cell-row-0-column-isIcon">
<div>
<svg>
<title>title2</title>
</svg>
</div>
</div>
</div>
<div role="row" data-testid="table-row-1">
<div role="cell">
<input data-testid="table-row-1-checkbox"/>
</div>
<div data-testid="table-cell-row-1-column-name">
<button data-testid="expand-row"></button>
<a class="subtle-link">name1</a> //i want to click this element
</div>
<div data-testid="table-cell-row-column-description">
description1
</div>
<div data-testid="table-cell-row-column-isIcon">
<div>
<svg>
<title>title1</title>
</svg>
</div>
</div>
</div>
<div role="row" data-testid="table-row-2">
<div role="cell">
<input data-testid="table-row-checkbox"/>
</div>
<div data-testid="table-cell-row-2-column-name">
<button data-testid="expand-row"></button>
<a class="subtle-link">name2</a>
</div>
<div data-testid="table-cell-row-1-column-description">
description2
</div>
<div data-testid="table-cell-row-0-column-isIcon">
<div>
<svg>
<title>title1</title>
</svg>
</div>
</div>
</div>
</div>
从上面的 dom 中可以看出,有两个名称为 name1 和描述 description1 的 div。但标题是“title1”,“title2”
我已经尝试如下,
cy.get('div[role="row"]')
.find('div', 'name1')
.contains('svg', 'title1')
.parent()
.click();
这会选择第一个带有 name1 的元素,尽管 title 是 title2
【问题讨论】:
-
你得到的确切错误是什么。如果能加个截图就好了?
-
您的代码中是
cy.get而不是cy.getR? -
@Dhamo:对不起,是的,它的 cy.get
标签: javascript cypress