总结web自动化测试页面常用字段的定位方法
在一次编写web自动脚本时,突然想到web页面常有的字段有:输入框,按钮,富文本输入框,下拉框选项,弹窗,表格,上传文件以及时间插件,以下总结的没有编写时间插件的用例了!以后碰到再更新,
以下是蹩脚代码,哈哈!!
# _*_ coding=utf-8 _*_ from selenium import webdriver
from selenium.webdriver.support.ui import Select
import time def test(object):
driver = webdriver.Firefox()
driver.get('http://127.0.0.1:8081/')
driver.maximize_window()
driver.find_element_by_name("username").send_keys("admin")
driver.find_element_by_name("password").send_keys("123")
driver.find_element_by_name("validCode").send_keys(9999)
driver.find_element_by_xpath("/html/body/div[1]/div[2]/ul/form/li[5]/button").click()
time.sleep(2)
driver.find_element_by_xpath("//*[@id='isp']/li[1]/a/span[1]").click()
driver.find_element_by_id('9ab14bce07864d12b3ce2843315abc5c').click()
time.sleep(2)
#获取当前页面的权柄
driver.window_handles
#一个页面中存的多个iframe标签,切换到对应的iframe标签下才能正确的定位
driver.switch_to.frame(driver.find_element_by_xpath('//*[@id="content-main"]/iframe[2]'))
print("切换iframe,以下代码在新的iframe中实现")
driver.find_element_by_id("projectName").send_keys(123)
#下拉框的两种选择方法 第一种
# ss = driver.find_element_by_id('riskLevel').click()
# ss.find_element_by_xpath('//*[@id="riskLevel"]/option[3]').click()
#第二种选中下拉款必须导入from selenium.webdriver.support.ui import Select
Select(driver.find_element_by_id('riskLevel')).select_by_index(2)
time.sleep(2)
s = Select(driver.find_element_by_name("borrowUse"))
# s.select_by_index(2)
s.select_by_value("购物消费")
# Select(driver.find_element_by_xpath('//*[@id="form"]/ul/li[7]/div/div/select')).select_by_index(2)
#上传文件
driver.find_element_by_id('uploadFile2').send_keys(r"C:\Users\admin\Desktop\测试文档\图片\11693.jpg")
time.sleep(3)
#富文本数两种输入框进行输入
# test_js = 'document.getElementById("ueditor_0").contentWindow.document.body.innerHTML="%s"' % (1111)
# driver.execute_script(test_js)
test_js = 'document.getElementById("ueditor_0").contentWindow.document.body.innerText="%s"'%("sdfsdf加下")
driver.execute_script(test_js)
#表格进行选择
driver.find_element_by_xpath('//*[@id="form"]/ul/li[3]/div/div/button').click()
#切换到弹框界面
driver.switch_to_default_content()
driver.find_element_by_id('keywords').send_keys(1231231)
# driver.find_element_by_xpath('//*[@id="borrowSelect"]/div/div[1]/div/div/form/div/span/button').click()
#选中表格信息中的数据信息
# table = driver.find_element_by_xpath('//*[@id="gview_jqGrid"]/div[2]/div/table')
# print("table表格总行数",len(table.find_elements_by_tag_name('tr')))
table = driver.find_element_by_id('jqGrid')
table_row = table.find_elements_by_tag_name('tr')
print("table1表格总行数", len(table_row))
#选中表格行与列的信息,以下是第二行与第二列,不算标题行
row_col = table_row[2].find_elements_by_tag_name('td')[2]
# 获取表格中的信息
print(row_col.text)
row_col.click()
'''
# 删除最后一行
table_row[-1].find_element_by_tag_name('input').click()
time.sleep(2)
#警告框处理,accept()接受现有警告框,dismiss():解散现有警告框
driver.switch_to_alert().accept()
time.sleep(2) # 检查是否删除成功
# time.sleep(2)
# 第三种检查
table_rows_sc = table.find_elements_by_tag_name('tr')
print(len(table_rows_sc))
if len(table_rows_sc) == len(table_row) - 1:
print('检查:删除成功')
'''
driver.find_element_by_class_name('layui-layer-btn0').click()
#关闭弹框后需要切换到以前的iframe中
driver.switch_to.frame(driver.find_element_by_xpath('//*[@id="content-main"]/iframe[2]'))
driver.find_element_by_id('apr').send_keys(3)
driver.qiut() if __name__ == "__main__":
tal(object)
总结web自动化测试页面常用字段的定位方法的更多相关文章
- Web自动化测试:xpath & CSS Selector定位
Xpath 和 CSS Selector简介 CSS Selector CSS Selector和Xpath都可以用来表示XML文档中的位置.CSS (Cascading Style Sheets)是 ...
- 软件WEB自动化测试工具之智能元素定位
江湖一直有着这么一句名言“天下武功,唯快不破".那么在软件测试领域,自然而然我们会想到软件自动化测试.软件自动化测试的实现自然离不开软件自动化测试工具.软件自动化测试工具是软件自动化的载体, ...
- CSS常用背景图片定位方法
CSS背景图片定位其实对于每一位学习前端的同学来说,都已经非常熟悉了.网上铺天盖地的最常见的一种方案就是在父元素中relative,然后子元素absolute.这种方案当然好,不过带来的一个缺点就是会 ...
- FTL页面常用到的一些方法combobox、combotree、datagrid
参考文件:点击下载 1.combobox: (1).js 1)初始化combobox //相似度 $('#same').combobox({ //url:"<@s.url value= ...
- JS跳转页面常用的几种方法
第0种:(常用) function triggerAOnclick(){ window.open("http://localhost/jwxt/forward/2TrainSchemeDat ...
- 微信小程序--跳转页面常用的两种方法
一.bindtap="onProductsItemTap"绑定点击跳转事件 在.wxml文件中绑定 在.js文件中实现绑定事件函数 二.navigator标签配合URL跳转法 在w ...
- JavaScript在web自动化测试中的作用
前言 JS的全称JavaScript,是一种运行在浏览器中的解释型脚本语言,通常用来实现web前端页面的基本功能,对于前端开发人员是不得不掌握的一门基本技能,但是对于做web自动化测试的人员来说,如果 ...
- 【转载】Xpath定位方法深入探讨及元素定位失败常见情况
一.Xpath定位方法深入探讨 (1)常用的Xpath定位方法及其特点 使用绝对路径定位元素. 例如: driver.findElement(By.xpath("/html/body/div ...
- Xpath定位方法深入探讨及元素定位失败常见情况
一.Xpath定位方法深入探讨 (1)常用的Xpath定位方法及其特点 使用绝对路径定位元素. 例如: driver.findElement(By.xpath("/html/body/div ...
随机推荐
- postgresql数据库中~和like和ilike的区别
~(暂且叫他波浪号吧) 和 LIKE 和 ILIKE 操作符可以模糊匹配字符串,LIKE是一般用法,ILIKE匹配时则不区分字符串的大小写,~ 波浪号则可以使用正则匹配. LIKE和 ILIKE 它 ...
- Go语言中的Package问题
问题一.Go使用Package组织源码的好处是什么? 1.任何源码属于一个包 2.用包组织便于代码的易读和复用 问题二.Go语言中Package的种类 Go语言中存在两种包.一种是可执行程序的包.一种 ...
- HDU1754-ZKW线段树
单点更新,区间最值 HDU 1754 // // Created by helica on 2018/3/18. // //zkw线段树 单点修改 区间求最值 //HDU 1754 #include ...
- Python神器 Jupyter Notebook
什么是Jupyter Notebook? 简介 Jupyter Notebook是基于网页的用于交互计算的应用程序.其可被应用于全过程计算:开发.文档编写.运行代码和展示结果. Jupyter Not ...
- What Kind of Friends Are You? ZOJ 3960
比赛的时候用vector交集做的...情况考虑的不全面 wrong到疯 赛后考虑全了情况....T了 果然 set_intersection 不能相信 嗯 不好意思 交集a了 第二个代码 求出来 ...
- .Net Core实践3 配置文件
环境 .netcore2.1 / vs2017 / win10 / centos7 在.netcore项目中读取配置文件,先添加应用程序配置文件App.config.这个是类库项目的配置文件名. Sy ...
- 对于CAN ID的理解
本文主要讲的是自己对于CAN ID的理解,希望对需要的人有帮助,本文以通俗的方式来理解,不涉及到具体CAN通信. 在接触CAN之前,应该接触过IIC通信,在IIC通信中,在同一条IIC通信总线上每个d ...
- iptables防火墙规则积累
1.内网IP地址端口映射: 通过访问本机地址的3389端口,可以访问到192.168.1.139的远程桌面服务: -A PREROUTING -p tcp -m tcp --dport 3389 ...
- PTA编译总结求最大值及其下标
代码: #include<stdio.h> int main(void) { int i,index=0,n; int a[10]; scanf(" ...
- 【踩坑】利用fastjson反序列化需要默认构造函数
利用 fastjson等 反序列化时需要注意,他可能会用到 默认的构造函数,如果没有默认构造函数,某些场景下可能会出现 反序列化熟悉为空的情况,如下图所示: