• web自动化测试难点 滚动条操作、日期框处理、上传文件


    如何把页面滑到最低部?

    一般来说,做web自动化测试时,不需要单独写代码,把页面滑到可见,因为click操作,只要是元素存在并且加载出来了,就可以点击到,无需另外写滑动元素的代码。

    如果特殊情况需要滑动的话,python中的selenium 库中的execute_script方法执行js语句来实现滚动功能

     'arguments[元素对象].scrollIntoView();',元素对象
    driver.execute_script('arguments[0].scrollIntoView(false);',ele)#移动元素到底部可见
    driver.execute_script('arguments[0].scrollIntoView();',ele)#移动元素到顶部可见
    driver.execute_script('window.scrollTo(0,document.body.scrollHeight)')#将页面移动到页面底部
    
    driver.execute_script("window.scrollTo(document.body.scrollHeight,0)")#将页面移动到页面顶部
    

      

    日期框处理

    相信大家在测试web页面时,遇到过日期框,是那种只能选择的,不能直接输入,那这种做web自动化测试时,该如何处理呢

    改变属性值,让它可以直接输入

    from selenium import webdriver
    
    driver  = webdriver.Chrome()
    
    # pha_js = "var a = arguments[0];a.readOnly=false;a.value= arguments[1];"#js语法
    
    loc = ("xpath","//*[@id='train_date']")
    ele = driver.find_element(*loc)
    
    now_10 = "1111"  # datetime获取当前时间
    
    driver.execute_script("var a = arguments[0];a.readOnly=false;a.value= arguments[1];",ele,now_10)
    

      

    12306 日期选择框的例子

    driver=webdriver.Chrome()
    driver.get('https://www.12306.cn/index/')
    
    driver.implicitly_wait(20)
    
    #先选择出发地,再修改出发地
    driver.find_element_by_id("fromStationText").click()
    driver.find_element_by_xpath('//li[@title="北京"]').click()
    pha_js='var a=document.getElementById("fromStationText");a.value="深圳"'
    driver.execute_script(pha_js)
    
    #先选择到达地,再修改到达地
    driver.find_element_by_id("toStationText").click()
    driver.find_element_by_xpath('//li[@title="上海"]').click()
    arive_js='var a=document.getElementById("toStationText");a.value="常德"'
    driver.execute_script(arive_js)
    
    #日期处理
    time_js='var a=document.getElementById("train_date");a.readOnly=false;a.value="2020-05-01"'
    driver.execute_script(time_js)
    
    #日期处理
    ele4=(By.ID,'search_one')
    driver.find_element(*ele4).click()
    

      

    上传操作

    web自动化测试,如何模拟上传文件操作

    由于上传操作,不是web界面的,不能使用python中的selenium库了

    只能使用别的库

    1.先安装pip install pypiwin32 库

    # 1找到输入框和打开按钮 元素;2、输入地址,点击打开。
    
    # 前提 :windows上传窗口已经出现。sleep1-2秒等待弹出的出现。
    def upload(filePath,browser_type="chrome"):
        if browser_type == "chrome":
            title = "打开"
        else:
            title = ""
    
        #找元素
        #一级窗口"#32770","打开"
        dialog = win32gui.FindWindow("#32770",title)
        #
        ComboBoxEx32 = win32gui.FindWindowEx(dialog,0,"ComboBoxEx32",None)  #二级
        comboBox = win32gui.FindWindowEx(ComboBoxEx32,0,"ComboBox",None)   #三级
        #编辑按钮
        edit = win32gui.FindWindowEx(comboBox,0,'Edit',None)    #四级
        #打开按钮
        button = win32gui.FindWindowEx(dialog,0,'Button',"打开(&O)")   #二级
    
    
        #往编辑当中,输入文件路径 。
        win32gui.SendMessage(edit,win32con.WM_SETTEXT,None,filePath)    #发送文件路径
        win32gui.SendMessage(dialog, win32con.WM_COMMAND, 1, button)    #点击打开按钮
    

      

  • 相关阅读:
    HDU1213How Many Tables并查集
    Redis新的存储模式diskstore
    GPFS文件系统笔记
    redis持久化
    360安全卫士qurl.f.360.cn分析
    [原创]解决DataSet的GetXml()方法空列不返回问题
    在多台服务器上简单实现Redis的数据主从复制
    史航416随笔
    史航416实验1总结
    史航416第二次作业总结
  • 原文地址:https://www.cnblogs.com/hherbk/p/12707318.html
Copyright © 2020-2023  润新知