0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Dart入門】【自動テスト】Dart で雑にWebdriver を利用する

Last updated at Posted at 2022-07-02

これは何か

Dart でWebの自動テストをしたくなりました。
Googleの提供するDart 用のWebdriverがあるのですが、利用方法をサクッと紹介する日本語記事がなかったため執筆しました。

以下を対象読者としています

  • Pythonなど他言語で、Selenium を利用したことがある
  • Dartを利用して自動テストしたい
  • 初期セットアップだけやれれば、あとは自走できる

動作環境

  • MacOS Monterey
  • chromedriver (103)
  • webdriver: ^3.0.0

1. chromedriver のインストール

% brew install selenium-server-standalone
% brew install chromedriver

※ 細かいですが、chromedriverを以前からinstallしてある人は、バージョンが最新かチェックしましょう。

% chromedriver --version
ChromeDriver 103.0.5060.53 (...略)

上記コマンドで出てくるバージョン(私の場合103番台)と、ご利用中のGoogle Chrome のバージョンがあっているかどうか確認しましょう。これがあっていないとエラー出ます。(よくあるエラーですね)

2. Dart側の設定

pubspec.yamlにwebdriverを追加

dependencies:
  webdriver: any

3. chromedriver をターミナルから起動

% chromedriver

うまくいけば、以下のようなレスポンスがあります

Starting ChromeDriver 103.0.5060.53 (...略...) on port 9515
Only local connections are allowed.
Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
ChromeDriver was started successfully.

これでいう1行目に書いてあるポート番号(こちらだと「9515」)をメモしましょう。(あとで使う)

また、このターミナルは起動したまま放置しておきます。
(※PythonのSelenium だと、この過程がなかったと記憶しています。気をつけましょう)

4. Dartファイルを作る

どこでもいいので、Dart プロジェクトの適当な場所にテストファイルを設置します。

one_test.dart
import 'package:webdriver/io.dart';

void main() {
  //このuriの'9515'となっているところに、3.でメモしたポート番号を入れる
  var driverUri = Uri.parse('http://127.0.0.1:9515/');
  String targetUri = 'https://google.com/';

  Future<WebDriver> driver =
      createDriver(uri: driverUri, spec: WebDriverSpec.W3c);

  driver.then((WebDriver d) {
    d.get(targetUri);

    //例えばここでDOM操作 できます
    //var ans = d.findElement(By.id('hogehoge'));
    //print(ans);

  });
}

5. 自動で Windowを開くところまでやる

3で利用したのとは別のターミナルから、4で作成したdartのファイルを起動します

% dart run one_test.dart

6. できました

それでは。

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?