# 指令列表

## 通用参数

下面定义的所有指令具有一组一致的参数。参数如下。

### `type` <a href="#type" id="type"></a>

* **类型**: `Enum["click", "input", "scroll", "scroll_to_bottom", "wait", "wait_for_element", "fetch_resource"]`
* **描述：** 浏览器指令类型。

### `timeout_s` <a href="#timeout_s" id="timeout_s"></a>

* **类型**: `整数`
* **描述：** 如果未在规定时间内完成，多久后跳过该动作。
* **限制**: 0 < `timeout_s` <= 60
* **默认值**: 5

### `wait_time_s` <a href="#wait_time_s" id="wait_time_s"></a>

* **类型**: `整数`
* **描述：** 在执行下一个动作前等待多长时间。
* **限制**: 0 < `wait_time_s` <= 60
* **默认值**: 0

### `on_error` <a href="#on_error" id="on_error"></a>

* **类型**: `Enum["error", "skip"]`
* **描述：** 指示当此指令失败时应如何处理后续指令：
  * `"error"`：停止浏览器指令的执行。
  * `"skip"`：继续执行下一条指令。
* **默认值**: `"error"`

#### 包含通用参数的示例

{% code overflow="wrap" %}

```bash
{\"type\": \"wait_for_element\", \"selector\": {\"type\": \"text\", \"value\": \"Load More Items\"},\"timeout_s\": 5, \"wait_time_s\": 2, \"on_error\": \"skip\"}
```

{% endcode %}

## 指令 <a href="#click" id="click"></a>

### `click` <a href="#click" id="click"></a>

* **描述**：点击一个元素并等待设定的秒数。
* **参数：**
  * `type: str = "click"`
  * `selector: dict`
    * `type: Enum["xpath", "css", "text"]`
    * `value: str`
* **示例**:

{% code overflow="wrap" %}

```bash
{\"type\": \"click\",\"selector\": {\"type\": \"xpath\",\"value\": \"\/\/button\"}}
```

{% endcode %}

### `input` <a href="#input" id="input"></a>

* **描述**：在选定元素中输入文本。
* **参数：**
  * `type: str = "input"`
  * `selector: dict`
    * `type: Enum["xpath", "css", "text"]`
    * `value: str`
  * `value: str`
  * **示例：**

{% code overflow="wrap" %}

```bash
{\"type\": \"input\",\"selector\": {\"type\": \"xpath\",\"value\": \"\/\/input\"},\"value\": \"pizza boxes\"}
```

{% endcode %}

### `scroll` <a href="#scroll" id="scroll"></a>

* **描述**：滚动指定像素数。
* **参数：**
  * `type: str = "scroll"`
  * `x: 整数`
  * `y: 整数`
* **示例：**

```bash
{\"type\": \"scroll\",\"x\": 0,\"y\": 100}
```

### `scroll_to_bottom` <a href="#scroll_to_bottom" id="scroll_to_bottom"></a>

* **描述**：在设定的秒数内向底部滚动。
* **参数：**
  * `type: str = "scroll_to_bottom"`
* **示例**:

```bash
{\"type\": \"scroll_to_bottom\",\"timeout_s\": 10}
```

### `wait` <a href="#wait" id="wait"></a>

* **描述**：等待设定的秒数。
* **参数：**
  * `type: str = "wait"`
* **示例**:

```bash
{\"type\": \"wait\",\"wait_time_s\": 2}
```

### `wait_for_element` <a href="#wait_for_element" id="wait_for_element"></a>

* **描述**：等待元素加载，最长等待设定的秒数。
* **参数：**
  * `type: str = "wait_for_element"`
  * `selector: dict`
    * `type: Enum["xpath", "css", "text"]`
    * `value: str`
  * **示例：**

{% code overflow="wrap" %}

```bash
{\"type\": \"wait_for_element\",\"selector\": {\"type\": \"text\",\"value\": \"Load More Items\"},\"timeout_s\": 5}
```

{% endcode %}

### `fetch_resource` <a href="#fetch_resource" id="fetch_resource"></a>

{% hint style="warning" %}
该 `fetch_resource` 指令必须是浏览器指令列表中的最后一条指令；任何后续指令将不会被执行。
{% endhint %}

* **描述**：获取第一个匹配设定模式的 Fetch/XHR 资源。
* **参数：**
  * `type: str = "fetch_resource"`
  * `filter: str(RegEx expression)`
  * `on_error: Enum["error", "skip"]`
* **示例：**

```bash
{\"type\": \"fetch_resource\",\"filter\": \"\/graphql\/item\/\"}
```

## 指令的校验

任何与指令格式相关的不一致都会导致一个 `400` 状态码和相应的错误信息。

例如，像这样的负载：

```bash
[{\"type\": \"unsupported-wait\",\"wait_time_s\": 5}]}]
```

将导致：

```json
{    
    "errors": {
        "message": "Unsupported action type `unsupported-wait`, choose from 'click,fetch_resource,input,scroll,scroll_to_bottom,wait,wait_for_element'"
    }
}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://developers.oxylabs.io/documentation/cn/gao-ji-dai-li-jie-jue-fang-an/web-unblocker/custom-browser-instructions/browser-instructions-beta/list-of-instructions.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
