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测试问题汇总的更多相关文章

  1. GUI 测试

    图形用户界面( GUI )对软件测试提出了有趣的挑战,因为 GUI 开发环境有可复用的构件,开发用户界面更加省时而且更加精确.同时, GUI 的复杂性也增加了,从而加大了设计和执行测试用例的难度.因为 ...

  2. 转载:开发者眼中最好的 22 款 GUI 测试工具

    对于很多同学来说gui程序的测试是一个难点,所以我从网上转载了一篇关于gui测试的一篇文章,里面罗列的很多工具,大家可以尝试一下学习学习. 英文原文:22 best GUI testing tools ...

  3. 开发者眼中最好的 22 款 GUI 测试工具

    1.Abbot - Java GUI 测试框架 Abbot是一个基于GUI的简单的Java测试框架,它能够帮助开发者测试Java用户界面. 它提供事件自动生成和验证Java GUI组件,使您能够轻松地 ...

  4. windows gui测试工具:AutoIt

    windows gui测试工具:AutoIt 2017-01-09 目录 1 简介2 示例1 记事本自动化操作3 示例2 上传文件 1 简介 返回 AutoIt v3 是用以编写并生成具有 BASIC ...

  5. GUI测试要点

    本人测试知识还不完整,所以下面的文字总结自网络上的文章,红色字体为我平时的测试经验,如有雷同之处,还请见谅,仅自己学习之用. 转载请说明来自博客园--邦邦酱好. ------------------- ...

  6. UI测试和GUI测试的区别

    UI 测试 包含GUI测试和command line 测试 分享连接 https://www.ranorex.com/resources/testing-wiki/gui-testing/

  7. python GUI测试自动化

    #! /usr/bin/env python#coding=GB18030'''GUI测试自动化 语言:python模块:pywinauto环境:windows7中文.python-2.6_32bit ...

  8. Jmeter(十七)_驱动浏览器做GUI测试

    jmeter不光可以完成性能测试.接口测试,现在也可以依靠WebDriver来完成GUI的功能自动化测试了,是不是很神奇? 1:下载JMeterPlugins-WebDriver-1.3.1.zip, ...

  9. 耿丹CS16-2班课堂测试作业汇总

    Deadline: 2016-11-01 11:59 作业内容 课堂测试作业总结 00.题目得5分,多半扣在格式上,有些同学代码写得很过分,已经很仁慈对待,同学们珍惜之: 01.界面设计得分不好,换行 ...

随机推荐

  1. 用Windows Live Writer离线写博客

    作为CSDN博客的菜鸟,我发现在线写博客很不方便,而且文字编辑也不方便,比如不能傻瓜化地修改字体和颜色."有志者自有千方百计,无志者只感千难万难."一番搜索后,我发现了Window ...

  2. Mysql数据库常用操作整理

    0.说明 MySQL数据库是一个十分轻便的数据库管理系统,相比大型的数据库管理系统如Oracle,MySQL更拥有轻便.灵活.开发速度快的特色,更适用于中小型数据的存储与架构,被数以万计的网站采用.从 ...

  3. Git 设置 Hook

    Git 设置 hook Hook 就是钩子,在需要的时候调用,根据每个钩子脚本(函数)的返回值决定下一步的操作. 在使用 Git 的过程中,有时候需要定制 Git 以便满足实际的需求. 需求 在一个项 ...

  4. android 官网访问不了

    网上搜到的解决方案,亲测有用.记下来,以备遗忘. 使用管理员权限,修改C:\Windows\System32\Drivers\etc\hosts文件,加入以下内容 173.194.127.7 deve ...

  5. HttpFlexSession注册失败的怪问题

    web.xml中已经注册了HttpFlexSession <listener> <listener-class>flex.messaging.HttpFlexSession&l ...

  6. [Java][Liferay] 如何从Javascript的function中获取language property的值

    问题描述 在Portlet中,Javascript中通过Liferay.Language.get("key")的方式是拿不到自己添加的property的值,原因是Liferay.L ...

  7. OC与JS交互之UIWebView

    随着H5的强大,hybrid app已经成为当前互联网的大方向,单纯的native app和web app在某些方面显得就很劣势.关于H5的发展史,这里有一篇文章推荐给大家,今天我们来学习最基础的基于 ...

  8. Spring-cloud微服务 Eureka学习教程-分布式搭建EurekaServer、EurekaClient(中级)

    我们这里只有一台服务器,所以我们先仿集群搭建. 完整demo项目代码:https://github.com/wades2/EurekaDemo2 在这之前我们先分析分析Eureka相比其他注册中心的好 ...

  9. CSS列表(新闻列表、导航条)常见写法

    以下面这个UL做演示 <ul> <li><a href="#"><span>2014-4-1</span>教育</ ...

  10. springboot利用mail配置包,实现邮件发送

    了解邮件发送与接收的过程: A->S1->S2->B 1.计算机A通过SMTP协议将邮件发送到服务器S1上: 2.服务器S1再发送到服务器S2: 3.计算机B通过POP3协议接收服务 ...