最近遇到一个怪事,通过正常打开浏览器,按照正常的web登录然后点击进入系统流程,将各控件的ID识别成功,然后使用 python3+selenium写好脚本,高高兴兴的用脚本跑时老是提示找不到控件,然后就重新打开浏览器登录重新识别控件,发现识别出来的控件ID又跟之前的不一样,瞬间怀疑是不是自己的眼睛出现视觉疲劳了。

重新关闭所有浏览器重新登录,再次识别该有问题的控件,发现识别出来的控件又跟之前第一次识别出来的一样,但是用脚本跑时还是一如既往的提示找不到该 控件,于是乎就博客园,csdn,stackoverflow,脚本之家各种搜索,发现问题的症状都跟我的不一样,看来这个问题也只能自己搞定,怀着做一个前无古人,后人不踩坑的信仰,于是就把这次问题解决过程记录下来:

1、首先大家要明白,页面的控件值不会一直保持不变的,它会随着操作顺序不同会不太一样,这也就是我第一次和第三次从同一地方进入然后该 控件值不一样

2、页面控件值不受浏览器变化页变化,就是你换个浏览器去查看,该 控件值还是那个控件值,与浏览器无关,但会与启动方式有关

关于第一个记录:

如果一个页面打开后,再没有关闭该页面的情况下,再次重新打开一个新页签打开相同页面,会发现两次的同一控件的控件值不一样,这个我就不举例,大家自己去试

关于第二个记录:

我通过正常方式打开谷歌浏览器,查找到《进入系统》这个控件的ID为 id3

但我通过webdriver驱动方式启动浏览器,查找到该控件的ID为  id2

通过不同方式启动的浏览器,同一控件的ID值确实不一样,按照正常的什么样方式启动测试,就以什么样方式获取的控件ID为准,于是把脚本中的id3改为id2,再次执行脚本,成功了。

通过上面遇到的两个问题,给我的启示就是:

1、使用selenium的webdriver时,写的脚本所使用的控件ID一定要从以webdriver驱动启动浏览器成功再去获取控件值,这样必然保证控件值是正确的(简单理解就是取页面控件值要从webdriver启动的浏览器中去获取)。

2、启动测试时或者取控件值时,一定要先把涉及相关的网页(不管是系统的方式启动浏览器,还是通过webdriver驱动方式启动的浏览器)全部关掉,重新按照写好脚本的顺序依次打开相关页面,然后再按F12键去获取控件值。

使用selenium时,使用从系统启动浏览器与通过自动化驱动方式启动浏览器控件ID不一样解决方法的更多相关文章

  1. iOS点击cell时,控件背景色消失的解决方法

    同时调用一下两个方法: - (void)setSelected:(BOOL)selected animated:(BOOL)animated { [super setSelected:selected ...

  2. 如何让窗口控件半透明(控件在Paint自己时,首先向主窗口询问,获取主窗口上控件所在区域的背景图)

    在网上关于窗口视觉效果,有2个问题被问得最多:第一个是如何让窗口边框有阴影效果?第二个是如何让窗口控件有半透明效果? 对于第一个问题,我们的答案是用双层窗口模拟或是用Layered Window.在X ...

  3. PluginOK中间件高级版-支持在Chrome、Edge、Firefox等浏览器网页中真正内嵌ActiveX等控件运行的版本已获多家上市公司采购

    PluginOK(牛插)中间件(原名:本网通WebRunLocal)是一个实现WEB浏览器(Web Browser)与本地程序(Local Application)之间进行双向调用的低成本.强兼容.安 ...

  4. 编写在浏览器中不弹出警告的ActiveX控件

    我们在编写ActiveX控件时,如果用在浏览器中,经常都会弹出现在运行的脚本不安全的提示, 如果给客户使用,将会带来极大不便.按照MSDN的介绍通常有两种一种是实现IObjectSafe接口,一种是通 ...

  5. 浏览器后退按钮导致jquery动态添加的select option值丢失的解决方法

    监控浏览器返回功能 判断浏览器返回功能 禁用浏览器的后退按钮 JS禁止浏览器后退键 http://volunteer521.iteye.com/blog/830522/ 浏览器返回功能 判断上一页面来 ...

  6. netbeans运行项目时,弹出“cannot be run from folder that contains non-ASCII characters in path”的对话框 解决方法

    netbeans运行项目时,弹出“cannot be run from folder that contains non-ASCII characters in path”的对话框,原因是项目路径中有 ...

  7. ios系统微信浏览器、safari浏览器中h5页面上拉下滑导致悬浮层脱离窗口的解决方法

    一. 运行环境: iphone所有机型的qq浏览器,safari浏览器,微信内置浏览器(qq浏览器内核)等. 二. 异常现象: 1. 大幅度上下滑动h5页面,然后停止滑动,有时候会影响到页面滚动,如局 ...

  8. fatal error C1010: 在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include "StdAfx.h"”? 解决方法

    错误描述: fatal error C1010: 在查找预编译头时遇到意外的文件结尾.是否忘记了向源中添加“#include "StdAfx.h"”? 错误分析:     此错误发 ...

  9. 其他浏览器(firefox,chrome)可以上网 ie(Internet Explorer)无法上网 解决方法

    http://blog.csdn.net/andywangcn/article/details/8945366

随机推荐

  1. .net 模拟登陆 post https 请求跳转页面

    AllowAutoRedirect property is true, the Referer property is set automatically when the request is re ...

  2. 好好耕耘 redis和memcached的区别

    观点一: 1.Redis和Memcache都是将数据存放在内存中,都是内存数据库.不过memcache还可用于缓存其他东西,例如图片.视频等等: 2.Redis不仅仅支持简单的k/v类型的数据,同时还 ...

  3. .NET Framework 平台构造基础

    CLR 公共语言运行库 执行给定编译代码单元所需的外部服务集合,它提供了一个定义明确的运行库层,可以被支持.NET的所有语言和平台所共享. 库 mscoree.dll:公共对象运行库执行引擎 当用户程 ...

  4. (6)Jquery1.8.3快速入门_过滤选择器

    一.Jquery的基本过滤选择器: 基本过滤选择器: 1. :first 选取第一个元素 2. :last 选取最后一个元素 3.:not(selector) 去除所有与给定的选择器匹配的元素 4.: ...

  5. Advanced redirection features

    here are three types of I/O, which each have their own identifier, called a file descriptor: standar ...

  6. Android Studio 学习(六)内容提供器

    运行时权限 使用ContextCompat.checkSelfPermission(MainActivity.this,Manifest.permission.CALL_PHONE)!=Package ...

  7. 10个用Console来Debug的高级技巧

    译者按: 我们往往会局限在自己熟悉的知识圈,但也应担偶尔拓展一下,使用一些不常见而又有用的技巧,扩大自己的舒适圈. 原文: 10 Tips for Javascript Debugging Like ...

  8. 洛谷P4170 [CQOI2007]涂色(区间dp)

    题意 题目链接 Sol 震惊,某知名竞赛网站竟照搬省选原题! 裸的区间dp,\(f[l][r]\)表示干掉\([l, r]\)的最小花费,昨天写的时候比较困于是就把能想到的转移都写了.. // luo ...

  9. 洛谷P4588 [TJOI2018]数学计算(线段树)

    题意 题目链接 Sol TJOI怎么全是板子题 对时间开个线段树,然后就随便做了.... #include<bits/stdc++.h> using namespace std; cons ...

  10. 冒泡排序算法的C++实现

    直接上代码: #include <iostream> using namespace std; void BubbleSort(int arr[],int n){ ) //在本例中,第1次 ...