seleniumで用意されているexecute_scriptの用途

Python

ボタンをクリックする

clickを使用して、ボタンなどを押下する際に使用します。使い方はこんな感じです。

オブジェクトをクリックする際は、click()という関数も用意されていますが、画面の範囲外にある場合にはエラーが起きてしまいます。ですので、個人的には全てクリック時は、execute_scriptを使用した方が良いと思っています。

driver.execute_script('arguments[0].click();', driver.find_element_by_id('IdName'))

画面をスクロールする

seleniumを使ってフォームに入力したり、ボタンをクリックしたりする際には、画面の範囲内にそのオブジェクトが無いといけない為に、画面をスクロールさせたりすることがあります。

そこで使用するのが、window.scrollToです。使い方はこんな感じです。

driver.execute_script(“window.scrollTo(0, document.getElementById('IdName').scrollHeight)“)

jsの中身を取得する

seleniumで以下のようなscriptタグの中身を取得したい場合、driver.find_element_by_id(‘IdName’).textdriver.find_element_by_tag_name(‘script’).textなどとしても上手いこと中身を取り出せません。

<script id='IdName'>
  .....
</script>

そこで、innerTextをreturnさせるようにします。使い方はこんな感じです。

res = driver.execute_script('return document.getElementById("IdName").innerText')
print(res)

最後に

seleniumを使っていると、どうしてもjsを使わないと出来ないことが出てきます。こういったものをtipとして残していきたいものです。

selenium使用で詰まった時に確認したいポイントまとめも書いてみたので、是非読んでみてください。

コメントを残す