エンジニア採用担当がプログラミング頑張る話【38日目/2ヶ月間】
こんにちは、@hiroki_maekawaです。
昨日に引き続き、業務自動化のコードを書いていきます!
1. 業務自動化コード(Python)
今日は、スクロールしないと表示されないボタンの押し方について考えていきたいと思います。原因は2つかなと。
①ページのロード終わる前に要素を探そうとしてしまっている
②下にスクロールしないと要素が隠れたままになっている
まず①。要素を探す前に、ロード時間を取るためにdriver.implicitly_wait(20)を書いてみましたがダメでした、、となる恐らく②。
ちょっとめんどくさいコードになりますが、「最初表示された画面でボタンを探す→押したいボタンが見つからなかったら→スクロール→押したいボタンがあれば押して→スクロール」を繰り返せば実現できそうです。
1-1. スクロールの高さを調べる
まずは対象の画面の高さを調べます。JavaScriptを使って調べる方法を見つけました。
height = driver.execute_script("return document.body.scrollHeight")
高さは2000でした。
画面を見てみると、3スクロール分しないと一番下までたどり着けないので、取得した高さの4分の1ずつ分の高さを下にスクロールしていくコードを書きます。
height = height // 4
driver.execute_script("window.scrollTo(0, height)")
1-2. 繰り返し処理のコードの書き直し
次は繰り返し処理のコードを書き直します。
「最初表示された画面でボタンを探す→押したいボタンが見つからなかったら→スクロール→押したいボタンがあれば押して→スクロール」と、スクロールを計3回行いたいので、while Trueの無限ループの中にtryとexceptを入れまくります。
これで実行したところ、上手く押したいボタンを全て押すことができました!!
今日できるようになったこと
・画面の高さを調べる
・スクロールダウンする
・tryとexceptの処理をexceptの中に入れる
さいごに
今日でやりたいことのほとんどはできるようになったので、最終的にはこのプログラムをEC2に送って、自分のPCを立ち上げなくても毎日自動で起動してくれるように設定することができればと思います!
それではまた!
この記事が気に入ったらサポートをしてみませんか?