> ## Documentation Index
> Fetch the complete documentation index at: https://stagehand.readme-i18n.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Observe

> 获取可操作DOM元素候选集

`observe()` 用于获取当前页面可执行的操作列表。该功能既可为规划步骤添加上下文，也可用于不确定当前所处页面时的场景。

<CodeGroup>
  ```typescript TypeScript theme={null}
  const observations = await page.observe();
  ```

  ```python Python theme={null}
  observations = await page.observe()
  ```
</CodeGroup>

`observe()` 返回对象数组，每个对象包含XPath选择器`selector`和简短`description`描述。

如需查找特定元素，也可传入指令进行观察：

<CodeGroup>
  ```typescript TypeScript theme={null}
  const observations = await page.observe({
    instruction: "Find the buttons on this page",
  });
  ```

  ```python Python theme={null}
  observations = await page.observe("Find the buttons on this page")
  ```
</CodeGroup>

通过将`returnAction`选项设为true，Observe还能返回针对候选元素的建议操作。以下是`ObserveResult`的示例：

```json theme={null}
  {
    "description": "A brief description of the component",
    "method": 'click',
    "arguments": [],
    "selector": 'xpath=/html/body[1]/div[1]/main[1]/button[1]'
  }
```

<Note>
  在Python中，ObserveResult被封装为Pydantic模型。可通过model\_dump()方法获取等效的`dict`结构。
</Note>

### **参数说明:** [`ObserveOptions`](https://github.com/browserbase/stagehand/blob/main/types/stagehand.ts)

<Tabs>
  <Tab title="TypeScript">
    <ParamField path="instruction" type="string" optional>
      提供观察指令。默认为"查找可在此页面上执行的操作"。
    </ParamField>

    <ParamField path="returnAction" type="boolean" optional>
      返回包含候选元素建议操作的观察结果对象。建议内容包括方法及参数（如有）。默认为`true`。
    </ParamField>

    <ParamField path="iframes" type="boolean" optional>
      如需包含iframe内容进行观察，请设置`iframes: true`。
    </ParamField>

    <ParamField path="modelName" type="AvailableModel" optional>
      指定使用的模型
    </ParamField>

    <ParamField path="modelClientOptions" type="object" optional>
      模型客户端的配置选项
    </ParamField>

    <ParamField path="domSettleTimeoutMs" type="number" optional>
      等待DOM稳定的超时时间（毫秒）
    </ParamField>
  </Tab>

  <Tab title="Python">
    <ParamField path="instruction" type="string" optional>
      提供观察指令。默认为"查找可在此页面上执行的操作"。
    </ParamField>

    <ParamField path="model_name" type="AvailableModel" optional>
      指定使用的模型
    </ParamField>

    <ParamField path="model_client_options" type="object" optional>
      模型客户端的配置选项
    </ParamField>

    <ParamField path="dom_settle_timeout_ms" type="number" optional>
      等待DOM稳定的超时时间（毫秒）
    </ParamField>
  </Tab>
</Tabs>

### **返回:** [`Promise<ObserveResult[]>`](https://github.com/browserbase/stagehand/blob/main/types/stagehand.ts)

每个 `ObserveResult` 对象包含 `selector` 和 `description` 属性。

<ParamField path="selector" type="string" required>
  表示元素选择器的字符串
</ParamField>

<ParamField path="description" type="string" required>
  描述可能操作的字符串
</ParamField>

<ParamField path="method" type="string" optional>
  在元素上调用的方法名称
</ParamField>

<ParamField path="arguments" type="object" optional>
  传递给方法的参数对象
</ParamField>
