• 多测师讲解_ 高级自动化测试selenium_001基本学习


    高级自动化测试python+selenium教程手册

    ——高级讲师肖sir

     1 webdriver

    环境搭建好了,我们正式学习 selenium  webdriver 架,它不像 QTP 之类的有 GUI 面的可视化工具,是webdriver 框架的 API。

     

    2.1.1 打开网页 

    注解:我们用谷歌浏览器

     

    # from selenium import webdriver    #导入一个selenium 库中导入webdriver模块
    '''
    Python中做UI自动化:selenium'''
    # 创建一个drvier对象用来调用打开浏览器,对浏览器实现操作
    # driver =webdriver.Chrome()  #主讲谷歌浏览器
    #driver =webdriver.Ie()
    #driver =webdriver.firefox()
    '''通过调用webdrvier.来引用对应的浏览器,生成一个浏览器对象
    注意事项:webdrvier. 点后面的浏览器名称不要自己输入用联想
    还有自己添加一个英文的小括号() 小括号的作用是:把它声明成为
    一个匿名对象 那么当前的drvier就是一个浏览器驱动对象,可以用它来
    对对应的浏览器实现操作的动作'''
    # UI自动化所有的调用都必须在最前面加上一个drvier对象
    # 通过对象来打开谷歌浏览器且输入网址
    # driver.get('http://www.baidu.com')
    # 通过对象调用get方法来打开一个网站URL

     

    2.1.2 设置休眠

    time.sleep(2)

    1. 由于打开百度网址后,页面加载需要几秒钟,所以最好等到页面加载完成后再继续下一步操作
      1. 导入 time 模块time 模块是 Python 自带的,所以无需下载

    设置等待时间,单位是秒(s,时间值可以是小数也可以是整数

     

     

    1.强制等待 sleep(xx)

    2.隐性等待 implicitly_wait(xx)

    3.显性等待 WebDriverWait

    2.1.3 页面刷新

    driver.refresh()

    1. 有时候页面操作后,数据可能没及时同步,需要重新刷新

    这里可以模拟刷新页面操作,相当于浏览器输入框后面的刷新按钮

     

    from selenium import webdriver
    import time #时间模块 sleep()线程等待
    driver =webdriver.Chrome()
    # driver.get('http://www.baidu.com') #直接打开
    url ='http://www.baidu.com'
    driver.maximize_window()
    driver.get(url) #通过引用变量来进入百度
    time.sleep(2)
    # '''用处:让元素定位更加的准确'''
    driver.get('http://gz.duoceshi.cn')
    driver.maximize_window() #窗口实现最大化显示100%
    time.sleep(2)
    driver.back()

    2.1.4 页面切换

    返回和切换

    driver.back()  #返回上一页

    driver.forward() #切换到下一页

    1. 当在一个浏览器打开两个页面后,想返回上一页面,相当于浏览器左上角的左箭头按钮
      1. 返回到上一页面后,也可以切换到下一页,相当于浏览器左上角的右箭头按钮 

     

    from selenium import webdriver
    import time #时间模块 sleep()线程等待
    driver =webdriver.Chrome()
    # driver.get('http://www.baidu.com') #直接打开
    url ='http://www.baidu.com'
    driver.maximize_window()
    driver.get(url) #通过引用变量来进入百度
    time.sleep(2)
    # '''用处:让元素定位更加的准确'''
    driver.get('http://gz.duoceshi.cn')
    driver.maximize_window() #窗口实现最大化显示100%
    time.sleep(2)
    driver.back()
    time.sleep(2)
    driver.forward()

    切换窗口

     

     切换窗口代码

    from selenium import webdriver
    import time #时间模块 sleep()线程等待
    driver =webdriver.Chrome()
    driver.get('http://gz.duoceshi.cn')#打开第一个网址
    driver.maximize_window()#最大化
    time.sleep(3)
    window='window.open("http://www.jd.com")'#通过变量来接收
    driver.execute_script(window)#执行脚本

    2.1.5 设置窗口大小

    1. 可以设置浏览器窗口大小,如设置窗口大小为手机分辨率 540*960

    2、窗口最大化窗口

    格式:

    def set_window_size(self, width, height, windowHandle='current'):

    windowHandle当前句柄,windowHandle当前

     

    from selenium import webdriver
    import time #时间模块 sleep()线程等待
    driver =webdriver.Chrome()
    driver.get('http://gz.duoceshi.cn')
    driver.set_window_size(200,200)
    time.sleep(2)
    driver.close()

    最大化代码:

    from selenium import webdriver
    import time #时间模块 sleep()线程等待
    driver =webdriver.Chrome()
    driver.get('http://gz.duoceshi.cn')
    driver.maximize_window()

    2.1.6 截屏

    driver.get_screenshot_as_file保存路径+图片名称

    1. 打开网站之后,也可以对屏幕截屏 
    2. 截屏后设置制定的保存路径+文件名称+后缀

     

    截屏代码:

    from selenium import webdriver
    import time #时间模块 sleep()线程等待
    driver =webdriver.Chrome()
    driver.get('http://gz.duoceshi.cn')
    driver.maximize_window()
    time.sleep(2)
    driver.get_screenshot_as_file(r'D:\bao\pp.png')

    2.1.7 退出

    1. 退出有两种方式,一种是 close;另外一种是 quit
    1. close 用于关闭当前窗口,当打开的窗口较多时,就可以用 close 关闭部分窗
    1. quit 用于结束进程,关闭所有的窗口

    3、最后结束测试,要用 quit,quit 可以回收盘的临时文件

     

     quit代码:

    from selenium import webdriver
    import time #时间模块 sleep()线程等待
    driver =webdriver.Chrome()
    driver.get('http://gz.duoceshi.cn')
    driver.maximize_window()
    time.sleep(2)
    driver.quit()

      close代码:

    from selenium import webdriver
    import time #时间模块 sleep()线程等待
    driver =webdriver.Chrome()
    driver.get('http://gz.duoceshi.cn')
    driver.maximize_window()
    time.sleep(2)
    driver.close()

     

  • 相关阅读:
    利用SqlBulkCopy快速大批量导入数据
    未能完成操作,无效的FormATETC结构
    JS编码和Asp.net编码
    Sql分页两种常用算法
    Subsonic.exe 生成数据访问层代码,报“从索引 0 处开始,初始化字符串的格式不符合规范”错误解决办法
    Asp.Net,代码实现页面输出缓存
    JS中all Collection 的几个方法
    注册、反注册dll,regsvr32命令详解
    ASP.NET页面传值汇总(Session/Server.Transfer/Query String/Cookie/Application)
    表格导出EXCEL
  • 原文地址:https://www.cnblogs.com/xiaolehua/p/13666634.html
Copyright © 2020-2023  润新知