概要
pythonのseleniumでarguments[0].scrollIntoView(); を使って画面の表示位置を調整していたスクリプトを久しぶりに動かしたときにエラーで落ちてしまったのでその対応方法
対処方法
self.driver.execute_script("arguments[0].scrollIntoView();", inputLabel)
から
inputLabel.location_once_scrolled_into_view
に変更しました。
inputLabel
はwebdriverのfind_element_by_XXX のメソッドで取得した要素になります。
状況
- seleniumの処理中画面の範囲外の要素を操作しようとすると
MoveTargetOutOfBoundsException
が発生してしまうので、対処として**arguments[0].scrollIntoView();**を使って画面をスクロールしてから動かすようにしていました。 - そのスクリプトはしばらく動かしていなかったのですが、最近使うかもということで動作確認をしたところ
javascript error: arguments[0].scrollIntoView is not a function
とエラーが・・・ - いろいろしらべたところstackoverflowの状況のようなのでこちらの方法を採用
- 公式ドキュメントでは勝手に変更するかも?とあったのでださいですがtry,exceptで失敗したときのみ動作するようにしました。