セレンはパラメータと戻り値を使用して、JavaScriptのスクリプトを実行します

セレンは、Javascriptのスクリプトが複数行のステートメントをサポートしている実行するために)(drvier.execute_scriptで使用することができます。
Javascriptが以下の機能を使用して達成することができます。

  • 削除要素は、無効、読み取り専用属性の制限を隠します
  • 要素のIDやハイライトのスタイルを追加します。
  • ページのスクロール
  • リッチテキスト入力ボックス(HTMLインジェクション)
  • 情報ページを取得します。

JavaScriptを使用パラメータ

使用Javascriptの文で、更なるパラメータは、動的オブジェクトまたは要素を通過することができる、Javascriptのプレースホルダーは、次のような最初のいくつかのパラメータを取るために「引数[N]」を示す文で使用しました:

js = "arguments[0].setAttribute('style', arguments[1]);"

ここでは、2つの埋め込みパラメータ、オブジェクトの一つの要素は、他のパターン文字列です。

element = driver.find_element_by_id("kw")
style = "background: red; border: 2px solid yellow;"

パラメータを運ぶために、ときにスクリプトを実行:

driver.execute_script(js, element, style)

Javascriptが戻り値を取得します

プラス、このようなページの高さへのアクセスなどのJavascriptステートメント、内の単語を返します。

js = 'return document.documentElement.scrollHeight;'

実行は、その戻り値の後に取得できます。

page_height = driver.execute_script(js)

完全な例

import time
from selenium import webdriver

driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')

js = 'arguments[0].setAttribute("style", arguments[1]);'
element = driver.find_element('id', 'kw')
style = 'background: red; border: 2px solid yellow;'
driver.execute_script(js, element, style)

page_height = driver.execute_script('return document.documentElement.scrollHeight;')
print(page_height)

time.sleep(3)
driver.quit()

図に示す実行結果:

結果を印刷します:

890

おすすめ

転載: www.cnblogs.com/superhin/p/12604080.html