---
title: "performScrollToNode"
description: "Scrolls a scrollable container to the content that matches the given [matcher]. If the content
isn't yet visible, the scrollable container will be scrolled from the start till the end till it
finds the content we're looking for. It is not defined where in the viewport the content will be
on success of this function, but it will be either fully within the viewport if it is smaller
than the viewport, or it will cover the whole viewport if it is larger than the viewport. If it
doesn't find the content, the scrollable will be left at the end of the content and an
[AssertionError] is thrown.

This action should be performed on a [node][SemanticsNodeInteraction] that is a scrollable
container, not on a node that is part of the content of that container. If the container is a
lazy container, it must support the semantics actions [ScrollToIndex], [ScrollBy], and either
[HorizontalScrollAxisRange] or [VerticalScrollAxisRange], for example
[LazyColumn][androidx.compose.foundation.lazy.LazyColumn] and
[LazyRow][androidx.compose.foundation.lazy.LazyRow]. If the container is not lazy, it must
support the semantics action [ScrollBy], for example,
[Row][androidx.compose.foundation.layout.Row] or
[Column][androidx.compose.foundation.layout.Column].

Throws an [AssertionError] if the scrollable node doesn't support the necessary semantics
actions."
type: "function"
---

<div class='type'>Function</div>


<a id='references'></a>
<div class='sourceset sourceset-common'>Common</div>


```kotlin
fun SemanticsNodeInteraction.performScrollToNode(
    matcher: SemanticsMatcher
): SemanticsNodeInteraction
```


Scrolls a scrollable container to the content that matches the given `matcher`. If the content
isn't yet visible, the scrollable container will be scrolled from the start till the end till it
finds the content we're looking for. It is not defined where in the viewport the content will be
on success of this function, but it will be either fully within the viewport if it is smaller
than the viewport, or it will cover the whole viewport if it is larger than the viewport. If it
doesn't find the content, the scrollable will be left at the end of the content and an
`AssertionError` is thrown.

This action should be performed on a `node` that is a scrollable
container, not on a node that is part of the content of that container. If the container is a
lazy container, it must support the semantics actions `ScrollToIndex`, `ScrollBy`, and either
`HorizontalScrollAxisRange` or `VerticalScrollAxisRange`, for example
`LazyColumn` and
`LazyRow`. If the container is not lazy, it must
support the semantics action `ScrollBy`, for example,
`Row` or
`Column`.

Throws an `AssertionError` if the scrollable node doesn't support the necessary semantics
actions.

#### Parameters

| | |
| --- | --- |
| matcher | A matcher that identifies the content where the scrollable container needs to scroll to |


#### Returns

| | |
| --- | --- |
|  | The `SemanticsNodeInteraction` that is the receiver of this method. Note that this is _not_ an interaction for the node that is identified by the `matcher`. |




