top of page
検索

Selenium Basic 使ってみた-(画面遷移が…)

更新日:2021年8月12日

こんにちは。

友人から頼まれて某フリマサイトのWebスクレイピングを試みています。

で、Selenium経由で制御しているのですが、まぁー、画面遷移に繋がるClickメソッド前後の動きが安定しない💦


Clickメソッド発行後は、画面が正しく遷移した前提で次の値取得などを進める途端、直前の画面遷移がうまくいっていないようでエラーになる。そんなエレメントはない、と…笑


で、エレメントの存在チェックやWait発行、画面遷移がうまくいっていることの確認など、Clickメソッドの度に行っていたらソースが膨れ上がっちゃうので共通サブルーチンを作ってスマート化しました。。。



■ 動作環境

 

OS: Windows 8.1(64ビット)

Excel: 2013(32ビット)

Chrome: 86.0.4240.198

Selenium Basic: v2.0.9.0



■ 共通サブルーチン

 

こんな感じにしてみました。

コール元のソース都合によっては、引数の在り方は他にもあると思いますが、とりあえずこの方式で。^^

  • argWd: 「特に」Waitメソッドのために必要な作成済みのWebDriverインスタンス(なんかこれ無駄ですよね…)

  • argBy: 要素を検索する際の条件となるByインスタンス

  • argTitle: Clickメソッドによって画面遷移した後の画面タイトル

  • argLimit: ループ回数期限(ここがセンスないですよね…笑)


あ、g_WAIT_SHORTは、事前に定義しておいた定数でして、500とかできってます。

画面遷移が正常に完了して新しい画面のタイトルが確認できるか?それともループ回数期限に到達するか?の何れかによって処理を終了します。

共通サブルーチンの戻り値は、画面遷移が成功=True、失敗(ループ回数期限に到達)=Falseとなります。



■ まとめ

 

いかがでしたでしょうか?

内容薄っぺらいですが、こんな共通サブルーチンって意外に便利だったりしますよね!

今回は、元ソースの画面遷移の度に重たいソース群を書いていたところをスッキリさせるために共有サブルーチンにしてみました。


なお、本備忘録を活用した【メルカリ管理ツール】を以下サイトで提供しております。

ご興味ございましたらご覧ください。


次回以降も、苦労した点を備忘録しようと思います。

閲覧数:822回0件のコメント

Comments


bottom of page