今更感がするが、運用して学んだことがあるので書いてく。参考になれば。
「selenium導入しよっかなーよくわからねぇけど」って人向け
くっそシンプルなパターンを作る
必要最低限のパターンを作る。いろんなパターンを考えない。絶対カオスになるので正常パターンだけ実装する。
分割してモジュールを作成
タイミングとかで成功率が変わるので一回で全部をやろうとしない。描画待てるよ!とかいろいろ意見があると思うが、何も知らない人に開発させる前提で考えてほしい。あとサイトの癖もあるからねー
ecサイトだったら
- 商品選択→カートに入れる
- カートから注文
みたいな感じで分割する。
seleniumのことを好きにならない
始めは結構面白いのよselenium。なんでも出来るって言ってもおかしくないぐらい機能が豊富。作っていくと、いろんなパターンを考えがちでカオス化するのは目に見えてるので「コーディングがめんどくせーから手っ取り早く終わらせよう」ぐらいの気持ちが大事。
スリープは入れるな!
seleniumのwaitなら許す。普通のスリープ入れるな!
elementとelementsどっちかに統一しよう
メソッド名が似てるからねー。可読性悪い気がする。
例外パターンもシレッと回避しろ!
特定のパターンは無理にif分回避するのでなく、要素がかなかったら処理しないとかに統一しよう。
// aタグが存在する場合のみクリックする var tags = webDriver.FindElements(By.TagName("a")) if(tags.Count() != 0) { // クリック }
c#ですみません。結構ここが決めてかなぁ?
サイトが変わって保守が大変になったら全部捨てろ!
強引すぎて申し訳ないが、これクソ大事。まぁこれを避けるために分割すればいいんだけど。プログラムもそうだよね。
テストエンジニアとかいれば話は別だけど、普通のエンジニアが開発しつつテストコード書いてくって感じで運用するならこの程度でいいと思う。っかこうやればよかったと後悔。