zoukankan      html  css  js  c++  java
  • python selenium-webdriver 执行js (八)

    使用python selenium 做自动化测试的时候其实我基本没有使用过执行js,只是在后来使用selenium来爬虫的时候使用到了,所以我在这里也就拿出来简单的介绍一下如何执行js。

    • execute_script 方法定义:

      

    • 因为比较简单所以我就不会太特别的细致介绍,所以我们看一个简单的例子
    #-*- coding:utf-8 -*-
    from selenium import webdriver
    import time
    driver = webdriver.Chrome()
    js = 'alert("我是一个消息框!")'   #这里我定义一个js alert 弹出框
    driver.execute_script(js)  #这里执行下上面的js,很简单把定义好的js直接传入即可。
    time.sleep(3)
    driver.switch_to_alert().accept()  #之前我们学习过如何处理alert对话框,所以学以致用,这里利用他在处理一下
    time.sleep(2)
    driver.quit()

    重点来啦!!!

       这里我们讲一个实际的应用,通过操作js来控制滚动条,滚动条的操作就是依靠了js。

    #-*- coding:utf-8 -*-
    
    '''由于浏览器的兼容性,所以我这边增加了判断,Chrome比较特殊'''
    # 滚动到底部
    def Execute_Js_Scroll_Top():
        if driver.name == "chrome":  #获取浏览器名称
           js = "var q=document.body.scrollTop=0"   
        else:
            js = "var q=document.documentElement.scrollTop=0"
        return driver.execute_script(js)
    # 滚动底部
    def Execute_Js_scroll_Foot():
        if driver.name == "chrome":  #获取浏览器名称
            js = "var q=document.body.scrollTop=10000"
        else:
            js = "var q=document.documentElement.scrollTop=10000"
        return driver.execute_script(js)
    
    
    #----------------演示滚动操作----------------------
    
    import time
    from selenium import webdriver
    from selenium.webdriver.common.keys import Keys
    driver = webdriver.Chrome()
    driver.maximize_window()
    driver.get("http://cn.bing.com")
    driver.find_element_by_id('sb_form_q').send_keys('selenium')
    driver.find_element_by_id('sb_form_go').send_keys(Keys.ENTER)
    time.sleep(2) #观察效果
    Execute_Js_scroll_Foot()  #首先我们滚动到底部
    time.sleep(2) #观察效果
    Execute_Js_Scroll_Top()   #再次滚动到顶部
    time.sleep(2) #观察效果
    driver.quit()

    看下效果,我们已经对滚动条从上拉动到下,然后再次拉上来。

  • 相关阅读:
    Spring3整合Quartz实现定时作业
    伪静态URLRewrite学习笔记
    VC 获取系统特殊文件夹的路径如:系统目录,桌面等
    正反向代理
    过虚拟机检测
    PDB符号文件信息
    Win64 驱动内核编程-33.枚举与删除对象回调
    Windows 反调试技术——OpenProcess 权限过滤
    Win10如何开启蓝屏记录?Win10开启蓝屏信息记录的方法
    Win7 x64下进程保护与文件保护(ObRegisterCallbacks)
  • 原文地址:https://www.cnblogs.com/mengyu/p/7018627.html
Copyright © 2011-2022 走看看