ウェブ自動化のための軽量なSeleniumラッパー。

# ausrine

[![PyPI](https://img.shields.io/pypi/v/ausrine)](https://pypi.org/project/ausrine/)
[![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)

ウェブ自動化のための軽量なSeleniumラッパーです。

[ausrine](https://github.com/naoyoshinori/ausrine)は、Seleniumの機能を直感的で使いやすいAPIにラップすることで、ウェブ自動化タスクを簡素化するように設計されています。データのスクレイピング、ウェブアプリケーションのテスト、反復的なブラウザタスクの自動化など、`ausrine`は最小限のセットアップで合理化されたエクスペリエンスを提供します。

## インストール

pipを使用して`ausrine`をインストールします:

```bash
pip install ausrine
```

`ausrine`は、WebDriverの依存関係を自動的に管理するSelenium Managerを備えた`selenium>=4.0.0`を使用します。インストール以外に追加のセットアップは必要ありません。

## 使用方法

`ausrine`は、直感的な`WebAutomationDriver`クラスを提供することで、Seleniumによるウェブ自動化を簡素化します。以下は、Bing検索を実行する例です:

```python
from ausrine import WebAutomationDriver
from ausrine.chrome import setup_webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys

# Chrome WebDriverを初期化
driver = setup_webdriver()

# WebAutomationDriverインスタンスを作成
ausrine = WebAutomationDriver(driver)

# Bingに移動
ausrine.get("https://www.bing.com/?cc=jp")

# 検索ボックスを見つけ、「iphone」と入力してEnterキーを押す
ausrine.send_keys(by=By.NAME, value="q", text="iphone")
ausrine.send_keys(by=By.NAME, value="q", text=Keys.ENTER)

# ドライバーを終了
ausrine.quit()
```

`execute`を使用して一連のコマンドを実行することもできます:

```python
sequences = [
    {"get": {"url": "https://www.bing.com/?cc=jp"}},
    {"send_keys": {"by": By.NAME, "value": "q", "text": "iphone"}},
    {"send_keys": {"by": By.NAME, "value": "q", "text": Keys.ENTER}},
]
ausrine = WebAutomationDriver(setup_webdriver())
ausrine.execute(sequences)
ausrine.quit()
```

エラー処理には`try_execute`を使用します:

```python
sequences = [
    {"get": {"url": "https://www.bing.com/?cc=jp"}},
    {"send_keys": {"by": By.NAME, "value": "q", "text": "iphone"}},
    {"send_keys": {"by": By.NAME, "value": "q", "text": Keys.ENTER}},
]
ausrine = WebAutomationDriver(setup_webdriver())
error = ausrine.try_execute(sequences)
if error:
    print(f"エラーが発生しました: {error}")
else:
    print("実行が正常に完了しました")
ausrine.quit()
```

### フォーム送信の例

以下は、ログインフォームを送信する例です:

```python
from ausrine import WebAutomationDriver
from ausrine.chrome import setup_webdriver
from selenium.webdriver.common.by import By

# Chrome WebDriverを初期化
driver = setup_webdriver()

# WebAutomationDriverインスタンスを作成
ausrine = WebAutomationDriver(driver)

# ログインページに移動
ausrine.get("https://example.com/login")

# ユーザー名とパスワードを入力し、送信
ausrine.send_keys(by=By.ID, value="username", text="user")
ausrine.send_keys(by=By.ID, value="password", text="pass", password=True)
ausrine.submit(by=By.ID, value="login-btn")

# ドライバーを終了
ausrine.quit()
```

## 特徴

-   **シンプルなAPI**: 一般的なウェブタスクのための`get`、`click`、`send_keys`、`submit`のような直感的なメソッド。
-   **シーケンス実行**: 堅牢な自動化のために、`execute`または`try_execute`で複数のコマンドを連鎖させます。
-   **カスタマイズ可能なWebDriver**: `setup_webdriver`を介して、ヘッドレスモードやカスタムダウンロードディレクトリなどのオプションでChromeを設定します。
-   **軽量**: 最小限の依存関係（Seleniumのみ）と焦点を絞った機能セット。

## 要件

-   Python >= 3.10
-   Selenium >= 4.0.0, < 5.0.0

## ライセンス

このプロジェクトはMITライセンスの条件の下でライセンスされています。詳細は[LICENSE](LICENSE)ファイルを参照してください。

## 貢献

貢献を歓迎します！詳細は[CONTRIBUTING.md](CONTRIBUTING.md)ファイルを参照し、[GitHubリポジトリ](https://github.com/naoyoshinori/ausrine)にIssueやプルリクエストを送信してください。