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()

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

  • 相关阅读:
    软件工程实践2017第一次作业
    mysql卸载重装总是卡在starting server这一选项
    java web出现的问题
    c#中对文件进行解压同时进行解压后的数据操作
    添加debug里面的图片进行打印
    如何创建一个button控件,进行资源选择
    使用Graphics.DrawString如何实现textBox换行打印
    很有意思的一种两个数交换的方法
    将一个字符串进行反转;获取一个字符串在另一个字符串中出现的次数;获取两个字符串中最大相同子串。
    Comparator匿名实现
  • 原文地址:https://www.cnblogs.com/mengyu/p/7018627.html
Copyright © 2011-2022 走看看