zoukankan      html  css  js  c++  java
  • 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)
    dayehui
  • 相关阅读:
    Android中xml解析
    [转]谈谈Java中"=="与"equals()"
    Java多线程之interrupt()的深度研究
    android:inputType参数类型说明
    Android中不能在子线程中更新View视图的原因
    美团2017秋招笔试题 拼凑钱币
    关于springmvc json交互产生的406错误
    Redis事务
    java 访问剪切板(读取与设置)
    Ajax之跨域访问与JSONP
  • 原文地址:https://www.cnblogs.com/zrh-960906/p/14787945.html
Copyright © 2011-2022 走看看