GUI测试问题汇总
1.ajax实现的页面元素定位问题
最近在做项目的时候遇到一个问题,通过xpath定位到元素后做一个循环操作,第一循环可以正常执行,第二次循环后就报错,错误信息:Message: The element reference of <button class="btn btn-info"> is stale; either the element is no longer attached to the DOM, it is not in the current frame context, or the document has been refreshed,怎么看xpath都没问题啊,搞了很久才发现页面我定位的那个元素在页面部分是通过ajax实现的,也就是说我的第一次循环后页面做了刷新,没有对元素进行重新定位就进入了第二次循环,因此会报这样的错误。
paths = ['//*[@id="mornExam-table"]/tbody/tr[1]/td[8]/button',
'//*[@id="mornExam-table"]/tbody/tr[2]/td[8]/button',
'//*[@id="mornExam-table"]/tbody/tr[3]/td[8]/button',
'//*[@id="mornExam-table"]/tbody/tr[4]/td[8]/button']
#循环前定位
btn0 = dr.find_element_by_xpath(paths[0])
btn1 = dr.find_element_by_xpath(paths[1])
btn2 = dr.find_element_by_xpath(paths[2])
btn3 = dr.find_element_by_xpath(paths[3])
btns = [btn0, btn1, btn2, btn3]
#循环测试数据
for j in range(0,len(flag)):
try:
btns[j] = dr.find_element_by_xpath(paths[j])
#第j次点第j个晨考按钮
btns[j].click()
........
2.定位元素
使用xpath定位元素的时候,写成相对路径,遇到问题如下:

似乎是相对路径的时候无法找到父元素,换成绝对路径解决。
定位元素能使用id和name最好,使用xpath定位是下下选,因为一旦页面做了改变都会影响到定位,使用xpath也尽量通过目标元素的上级元素中的id货name、class定位后再往下找路径。
3.下拉菜单

通过selenium的Select类库中提供的方法来操作下拉菜单
import selenium.webdriver.suurport.ui import Select
#生成选择器
selector = Select(driver.find_element_by_id('name'))
设值四种方法
1.selector.select_by_vlaue('WNCD005')
2. selector.select_by_index(0)
3. selector.select_by_visible_text(李懿)
4.selector.find_element_by_tag_name('options')[0].click
4.操作table中的元素
假如要获取table中第二列的值,依次做如下操作:
1.定位table
table = dr.find_element_by_xpath('//*[@id="leave-table"]')
2.所有行
rows = table.find_elements_by_tag_name('tr')
3.循环行
for i in range(0,len(rows))
#获取所有列
cols = rows[i].find_element_by_tag_name('td')
#取出第二列的值
value = cols[1].text
GUI测试问题汇总的更多相关文章
- GUI 测试
图形用户界面( GUI )对软件测试提出了有趣的挑战,因为 GUI 开发环境有可复用的构件,开发用户界面更加省时而且更加精确.同时, GUI 的复杂性也增加了,从而加大了设计和执行测试用例的难度.因为 ...
- 转载:开发者眼中最好的 22 款 GUI 测试工具
对于很多同学来说gui程序的测试是一个难点,所以我从网上转载了一篇关于gui测试的一篇文章,里面罗列的很多工具,大家可以尝试一下学习学习. 英文原文:22 best GUI testing tools ...
- 开发者眼中最好的 22 款 GUI 测试工具
1.Abbot - Java GUI 测试框架 Abbot是一个基于GUI的简单的Java测试框架,它能够帮助开发者测试Java用户界面. 它提供事件自动生成和验证Java GUI组件,使您能够轻松地 ...
- windows gui测试工具:AutoIt
windows gui测试工具:AutoIt 2017-01-09 目录 1 简介2 示例1 记事本自动化操作3 示例2 上传文件 1 简介 返回 AutoIt v3 是用以编写并生成具有 BASIC ...
- GUI测试要点
本人测试知识还不完整,所以下面的文字总结自网络上的文章,红色字体为我平时的测试经验,如有雷同之处,还请见谅,仅自己学习之用. 转载请说明来自博客园--邦邦酱好. ------------------- ...
- UI测试和GUI测试的区别
UI 测试 包含GUI测试和command line 测试 分享连接 https://www.ranorex.com/resources/testing-wiki/gui-testing/
- python GUI测试自动化
#! /usr/bin/env python#coding=GB18030'''GUI测试自动化 语言:python模块:pywinauto环境:windows7中文.python-2.6_32bit ...
- Jmeter(十七)_驱动浏览器做GUI测试
jmeter不光可以完成性能测试.接口测试,现在也可以依靠WebDriver来完成GUI的功能自动化测试了,是不是很神奇? 1:下载JMeterPlugins-WebDriver-1.3.1.zip, ...
- 耿丹CS16-2班课堂测试作业汇总
Deadline: 2016-11-01 11:59 作业内容 课堂测试作业总结 00.题目得5分,多半扣在格式上,有些同学代码写得很过分,已经很仁慈对待,同学们珍惜之: 01.界面设计得分不好,换行 ...
随机推荐
- empty,isset,is_null比较(差异与异同)
做php开发时候,想必在使用:empty,isset,is_null 这几个函数时候,遇到一些问题.甚至给自己的程序带来一些安全隐患的bug.很多时候,对于isset,empty都认为差不多.因此开 ...
- React.js 小书 Lesson5 - React.js 基本环境安装
作者:胡子大哈 原文链接:http://huziketang.com/books/react/lesson5 转载请注明出处,保留原文链接和作者信息. 安装 React.js React.js 单独使 ...
- 零基础逆向工程39_Win32_13_进程创建_句柄表_挂起方式创建进程
1 进程的创建过程 打开系统 --> 双击要运行的程序 --> EXE开始执行 步骤一: 当系统启动后,创建一个进程:Explorer.exe(也就是桌面进程) 步骤二: 当用户双击某一个 ...
- 【翻译】Best Practices for User interface android 适配不同屏幕、不同分辨率
地址:http://developer.android.com/training/multiscreen/screendensities.html#TaskProvideAltBmp 安卓支持不同的屏 ...
- 栅格那点儿事(四E)
栅格金字塔 如果上面的部分都已经看过了,那么如何在ArcMap中更好的渲染一个栅格数据你已经知道了.可仅展示好一个栅格数据是不够的,我们还需要知道如何快速的展示一个栅格数据. 讲金字塔之前,先解释 ...
- Mvc过滤器的使用【转载】
前言 在开发大项目的时候总会有相关的AOP面向切面编程的组件,而MVC(特指:Asp.Net MVC,以下皆同)项目中不想让MVC开发人员去关心和写类似身份验证,日志,异常,行为截取等这部分重复的代码 ...
- WiFi调试手机
转自http://blog.csdn.net/Yejianyun1/article/details/55511726 使用场景: 1.多设备执行测试用例 2.数据线无法满足使用 电脑与手机的网络需要 ...
- python3线程介绍01(如何启动和调用线程)
#!/usr/bin/env python# -*- coding:utf-8 -*- import osimport time,randomimport threading # 1-进程说明# 进程 ...
- MyEclipse导入JAVA工程显示红色叉叉的解决方法
当我们有时候导入一个新的工程的时候可能会出现以下这种情况,基本上是因为jar包路径的问题. 解决方法如下: 1.右击工程,选择properties 2.选择 Java Build Path -> ...
- Verilog八线 - 三线优先编码器设计(74LS148)
百度百科_74LS148 if语句法 //8线-3线优先编码器设计(74LS148) // //EI | A7 A6 A5 A4 A3 A2 A1 A0 | Y2 Y1 Y0 GS EO //0 | ...