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) #点击打开按钮
web自动化测试难点 滚动条操作、日期框处理、上传文件的更多相关文章
- Selenium处理页面---弹窗、表格、鼠标悬停、frame、下拉框、上传文件
一.Selenium测试-常用页面处理 1.概述 UI自动化测试(GUI界面层):UI层是用户使用产品的入口,所有功能通过这一层提供给用户,测试工作大多集中在这一层,常见的测试工具有UFT.Robot ...
- kindeditor富文本框,上传文件后,显示文件名称
kindeditor作为一个应用广泛富文本框,我们经常会利用到它,然而在使用的过程中,发现有的地方使用起来很不方便,例如本文要说的,用户上传文件之后,默认只有文件URL,没有文件说明,如图: 点击确定 ...
- python实例编写(3)--对话框,多窗口,下拉框,上传文件
一.对话框: 例:点击百度的登录,弹出的小窗口 #coding=utf-8 from selenium import webdriver from time import sleep dr=webdr ...
- Go连接到Linux服务器进行操作-执行shell命令&&上传文件
Go连接到Linux服务器进行操作 使用密码连接Linux服务器 package main import ( "fmt" "golang.org/x/crypto/ssh ...
- Python脚本控制的WebDriver 常用操作 <二十六> 上传文件
测试用例场景 上传文件的方法是找到上传文件的对象,通常是的对象.然后直接往这个对象send_keys,传入需要上传文件的正确路径.绝对路径和相对路径都可以,但是上传的文件必须存在,否则会报错. Pyt ...
- Ui自动化测试上传文件方法都在这里了
前言 实施UI自动化测试的时候,经常会遇见上传文件的操作,那么对于上传文件你知道几种方法呢?今天我们就总结一下几种常用的上传文件的方法,并分析一下每个方法的优点和缺点以及哪种方法效率,稳定性更高 被测 ...
- SharePoint 服务器端对象模型操作文档库(上传/授权/查看权限)
简介:上传文档到文档库,并对项目级授权,查看项目级权限方法 //在列表根目录下创建文件夹 public static string CreatFolderToSPDocLib(stri ...
- hadoop的hdfs文件操作实现上传文件到hdfs
这篇文章主要介绍了使用hadoop的API对HDFS上的文件访问,其中包括上传文件到HDFS上.从HDFS上下载文件和删除HDFS上的文件,需要的朋友可以参考下hdfs文件操作操作示例,包括上传文件到 ...
- Selenium 2自动化测试实战18(上传文件)
一.上传文件 上传文件是比较常见的web功能之一,但WebDriver没有提供专门用于上传的方法. 一般web页面的上传功能的操作需要单击“上传”按钮后打开本地的Window窗口,从窗口选择本地文件进 ...
随机推荐
- docker部署nginx服务器
1,下载nginx镜像 docker pull nginx 2,启动 docker run --name runoob-nginx-test -p 8081:80 -d nginx 3,创建本地目录 ...
- python的deque(双向)队列详解
首先 python的队列有很多种 Python标准库中包含了四种队列,分别是queue.Queue / asyncio.Queue / multiprocessing.Queue / collecti ...
- Glide缓存图片
是用Glide加载网络图片可以自动缓存到磁盘 添加依赖: implementation 'com.github.bumptech.glide:glide:4.9.0' implementation ' ...
- Eureka+Hystrix(断路器、熔断器)
红圈是断路器的三种状态: 关闭:1.当consumer访问provider时,在网络超时访问内,访问成功: 2.有时互相调用会出现网络涌动,(比如北京访问广东的服务器要经过很多次路由才能达到并相应), ...
- 关于查看本机ssh公钥以及生成公钥
1.查看本机公钥: 打开git bush,执行 cd ~/.ssh 进入.ssh文件夹(C:\Users\Administrator\.ssh) 执行 ls 命令,查看列表 执行 cat id ...
- 优雅手撕bind函数(面试官常问)
优雅手撕bind函数 前言: 为什么面试官总爱让实现一个bind函数? 他想从bind中知道些什么? 一个小小的bind里面内有玄机? 今天来刨析一下实现一个bind要懂多少相关知识点,也方便我们将零 ...
- DTU连接经常遇到的问题有哪些
随着物联网的不断推进,工业.环保.能源.共享等领域对于DTU设备的应用也越来越广泛,在应用过程中,DTU经常遇到哪些问题以及解决办法,下面做如下分析. 第一,DTU如何与组态软件连接? 答:二者连接的 ...
- MySQL各版本connector net msi
从其他博主那里扒来的! 链接:https://pan.baidu.com/s/1C1fYepBFKfxU0NJS0aRyJw 提取码:awsl
- PASS模型-第一周个人总结
目录 PASS模型-第一周个人报告 1.个人任务 2.个人工作内容 2.1 登陆界面 2.2 信息采集 2.3 视觉搜索 3.个人小结 3.1 收获 3.2 优化 PASS模型-第一周个人报告 博客班 ...
- NOIP/CSP-S 考前注意事项
NOIP/CSP-S 考前注意事项 实际操作与代码注意事项 基本内容 可以使用 #include <bits/stdc++.h>!!!从来都是可以的!!!不需要背诵一大串头文件,更不要从本 ...