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的