zoukankan      html  css  js  c++  java
  • 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)    #点击打开按钮
    

      

  • 相关阅读:
    rgba 和opacity的透明效果有什么不同
    定位 盒模型 浮动 css优先级 伪类伪元素选择器---未完成
    JS中Date对象getYear()方法和getFullYear()方法区别
    Javascript错误提示--SyntaxError: Illegal return statement
    JavaScript高级程序设计-第六章面向对象的程序设计(复习)
    为什么js加事件时不要写括号
    JS函数是如何执行的
    关于JS的总结
    我所知道的数据库6-DDL语言(续)
    我所知道的数据库5-DDL语言
  • 原文地址:https://www.cnblogs.com/hherbk/p/12707318.html
Copyright © 2011-2022 走看看