如何把页面滑到最低部?

一般来说,做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自动化测试难点 滚动条操作、日期框处理、上传文件的更多相关文章

  1. Selenium处理页面---弹窗、表格、鼠标悬停、frame、下拉框、上传文件

    一.Selenium测试-常用页面处理 1.概述 UI自动化测试(GUI界面层):UI层是用户使用产品的入口,所有功能通过这一层提供给用户,测试工作大多集中在这一层,常见的测试工具有UFT.Robot ...

  2. kindeditor富文本框,上传文件后,显示文件名称

    kindeditor作为一个应用广泛富文本框,我们经常会利用到它,然而在使用的过程中,发现有的地方使用起来很不方便,例如本文要说的,用户上传文件之后,默认只有文件URL,没有文件说明,如图: 点击确定 ...

  3. python实例编写(3)--对话框,多窗口,下拉框,上传文件

    一.对话框: 例:点击百度的登录,弹出的小窗口 #coding=utf-8 from selenium import webdriver from time import sleep dr=webdr ...

  4. Go连接到Linux服务器进行操作-执行shell命令&&上传文件

    Go连接到Linux服务器进行操作 使用密码连接Linux服务器 package main import ( "fmt" "golang.org/x/crypto/ssh ...

  5. Python脚本控制的WebDriver 常用操作 <二十六> 上传文件

    测试用例场景 上传文件的方法是找到上传文件的对象,通常是的对象.然后直接往这个对象send_keys,传入需要上传文件的正确路径.绝对路径和相对路径都可以,但是上传的文件必须存在,否则会报错. Pyt ...

  6. Ui自动化测试上传文件方法都在这里了

    前言 实施UI自动化测试的时候,经常会遇见上传文件的操作,那么对于上传文件你知道几种方法呢?今天我们就总结一下几种常用的上传文件的方法,并分析一下每个方法的优点和缺点以及哪种方法效率,稳定性更高 被测 ...

  7. SharePoint 服务器端对象模型操作文档库(上传/授权/查看权限)

    简介:上传文档到文档库,并对项目级授权,查看项目级权限方法         //在列表根目录下创建文件夹 public static string CreatFolderToSPDocLib(stri ...

  8. hadoop的hdfs文件操作实现上传文件到hdfs

    这篇文章主要介绍了使用hadoop的API对HDFS上的文件访问,其中包括上传文件到HDFS上.从HDFS上下载文件和删除HDFS上的文件,需要的朋友可以参考下hdfs文件操作操作示例,包括上传文件到 ...

  9. Selenium 2自动化测试实战18(上传文件)

    一.上传文件 上传文件是比较常见的web功能之一,但WebDriver没有提供专门用于上传的方法. 一般web页面的上传功能的操作需要单击“上传”按钮后打开本地的Window窗口,从窗口选择本地文件进 ...

随机推荐

  1. CTF相关

    https://blog.csdn.net/zxl2016/article/details/96482763

  2. http与https随笔

    http: 超文本传输协议.使用TCP/IP协议 https: 安全超文本传输协议.使用TLS/SSL协议 不同: 1.安全 http是明文传输.http是具有安全性的SSL加密传输协议. https ...

  3. 【Flutter 混合开发】添加 Flutter 到 Android Activity

    Flutter 混合开发系列 包含如下: 嵌入原生View-Android 嵌入原生View-iOS 与原生通信-MethodChannel 与原生通信-BasicMessageChannel 与原生 ...

  4. B. Kay and Snowflake 解析(思維、DFS、DP、重心)

    Codeforce 685 B. Kay and Snowflake 解析(思維.DFS.DP.重心) 今天我們來看看CF685B 題目連結 題目 給你一棵樹,要求你求出每棵子樹的重心. 前言 完全不 ...

  5. Win32之创建线程

    0x01.什么是线程? 1.线程是附属在进程上的执行实体,是代码的执行流程 进程 本身是空间上的概念,代表4GB的虚拟内存,线程代表着时间概念,也就是说,线程是当前运行的代码 在某个时间点只能有一段代 ...

  6. CF618F Double Knapsack

    题意简化 给定两个大小为 n 的集合A,B,要求在每个集合中选出一个子集,使得两个选出来的子集元素和相等 元素范围在 1~n ,n<=1e5 题目连接 题解 考虑前缀和 令A集合的前缀和为SA, ...

  7. python机器学习实现人脸图片自动补全

    人脸自动补全 关注公众号"轻松学编程"了解更多. 1.导包 import matplotlib.pyplot as plt import numpy as np import pa ...

  8. [BZOJ 4818/LuoguP3702][SDOI2017] 序列计数 (矩阵加速DP)

    题面: 传送门:https://www.lydsy.com/JudgeOnline/problem.php?id=4818 Solution 看到这道题,我们不妨先考虑一下20分怎么搞 想到暴力,本蒟 ...

  9. XX-Net 解决IPV6 不稳定,时好时坏。

    一.启动IPV6 1.重置: netsh interface Teredo set state disable netsh interface Teredo set state type=defaul ...

  10. c#视频位置

    static void Main(string[] args)        { string scoure = @"C:\Documents and Settings\Administra ...