selenium使用execute_script方法執行JavaScript


同步請求運行js:  

  driver.execute_script(script, *args)

  • script:要運行的js語句
  • *args:運行js語句時使用的一些參數

異步請求運行js: 

  driver.execute_async_script(script, *args)

  • script:要運行的js語句
  • *args:運行js語句時使用的一些參數

 

同步請求和異步請求的區別:

  • 同步請求指我們發送一個請求后,需要服務端進行返回相應結果后才能進行接下來的操作;

  • 異步請求指我們發送一個請求后,不需要服務端返回響應結果,直接進行接下來的操作(例如AJAX)。

from selenium import webdriver
class TestExample:
    def test_example1(self):
        driver = webdriver.Chrome()
        driver.maximize_window()
        driver.get("https://www.baidu.com/")  #打開百度
        js = 'document.getElementById("su").value'  # None
        js = 'return document.getElementById("su").value'  # 想拿到javaScript執行的返回值,需要在js腳本前加上return  百度一下
        print(driver.execute_script(js))
        driver.quit()

通過selenium所定位的元素對象,來傳遞到js語句中,作為一個js中的一個元素對象來進行操作。

from selenium import webdriver
from time import sleep
driver = webdriver.Chrome()
driver.get("http://www.runoob.com/js/js-tutorial.html")

# 高亮顯示所定位的元素
light_element = driver.find_element_by_id("s")
js_sentence_light = "arguments[0].setAttribute('style', arguments[1]);"
js_sentence_args = "color: yellow; border: 5px solid yellow;"
driver.execute_script(js_sentence_light, light_element, js_sentence_args)
sleep(3)

# 更改頁面輸入框中的默認文字
js_sentence_style = "document.getElementById('s').placeholder='我改變了搜索輸入框默認文字';"
driver.execute_script(js_sentence_style)
sleep(3)

# 改變滾動條位置
js_sentence_position = "document.documentElement.scrollTop=999"
driver.execute_script(js_sentence_position)
sleep(3)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



猜您在找 Selenium實戰(二)——調用JavaScript之execute_script()方法 Selenium基礎之------09調用js方法execute_script(script, *args),在當前窗口/框架,同步執行javaScript selenium+python自動化101-使用execute_script() 方法獲取 JavaScript 返回值 python-selenium之 execute_script 執行js腳本 python之selenium調用js(execute_script) python之selenium調用js(execute_script) python-selenium提供的execute_script調用js操作 js加載頁面使用execute_script選定加載位置 Java 使用execute方法執行Sql語句 HTML中javascript的