web自动化测试,定位不到元素的原因及解决方案(持续更新中2018年9月29日)
主要讲自己在实战中遇到的坑:
1.动态id定位不到元素
分析原因:每次打开页面,ID都会变化。用ID去找元素,每次刷新页面ID都会发生变化。
解决方案:推荐使用xpath的相对路径方法或者cssSelector查找到该元素。
2.iframe原因定位不到元素
分析原因:你要找的元素在某个框架(frame)里面
解决方案:跳转到该框架里,再查找元素。
driver.switchTo().frame("login_frame");
driver.switchTo().frame(driver.findElement(By.cssSelector("iframe[frameborder='0']")));
driver.switchTo().frame(driver.findElement(By.tagName("iframe"));
3.要返回到某frame外找元素
分析原因:当你进入某个框架,找到某元素。接下来又想找一个框架外的元素的时候,需要跳出该框架再找元素。
解决方案:执行下面这句代码,pareneFrame是父类,从当前框架跳转到父类的框架里。
driver.switchTo().parentFrame();
4.不在同一个frame里边查找元素
分析原因:页面左边一栏属于left_frame,右侧属于right_frame的情况,此时如果当前处在left_frame,就无法通过id定位到right_frame的元素
解决方案:通过以下语句切换到默认的content:
driver.switchTo().defaultContent();
5. xpath描述错误
分析原因:描述路径的时候没有按照xpath的规则来写 造成找不到元素的情况出现
解决方案:修改路径写法,或者用其他方式,个人最推荐css。
6.页面元素未加载完
分析原因:在找元素前,页面还没加载好,所以那些元素都不存在。
解决方案:等待时间。有三种方式(强制等待,隐式等待,智能等待)
Thread.sleep(5000); //强制等待5000毫秒
7.元素隐藏起来了
分析原因:窗口在不是最大化的情况下,前端页面元素只会显示局部,所以找不到啊。
解决方案:在找元素前,执行一句,浏览器最大化窗口,这样隐藏的元素就会全部出现了。最好写在beforetest里。
driver.manage().window().maximize();
8.firefox安全性强,不允许跨域调用出现报错
分析原因:它的错误描述为uncaught exception: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIDOMNSHTMLDocument.execCommand]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location:
解决方案:Firefox 要取消XMLHttpRequest的跨域限制。
第一是从 about:config 里设置
signed.applets.codebase_principal_support = true; (地址栏输入about:config 即可进行firefox设置)
第二就是在open的代码函数前加入类似如下的代码:
try { netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead"); } catch (e) { alert("Permission UniversalBrowserRead denied."); }
web自动化测试,定位不到元素的原因及解决方案(持续更新中2018年9月29日)的更多相关文章
- 转-web自动化测试,定位不到元素的原因及解决方案
1.动态id定位不到元素 分析原因:每次打开页面,ID都会变化.用ID去找元素,每次刷新页面ID都会发生变化. 解决方案:推荐使用xpath的相对路径方法或者cssSelector查找到该元素. 2. ...
- java自动化测试开发环境搭建(更新至2018年10月8日 11:42:15)
1.安装JDK的1.8版本 官网下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151 ...
- Python3 Selenium定位不到元素常见原因及解决办法
Python3 Selenium定位不到元素常见原因及解决办法 一.问题描述 在做web应用的自动化测试时,定位元素是必不可少的,这个过程经常会碰到定位不到元素的情况: 报错信息: no such e ...
- 软件WEB自动化测试工具之智能元素定位
江湖一直有着这么一句名言“天下武功,唯快不破".那么在软件测试领域,自然而然我们会想到软件自动化测试.软件自动化测试的实现自然离不开软件自动化测试工具.软件自动化测试工具是软件自动化的载体, ...
- Python+Selenium定位不到元素常见原因及解决办法(报:NoSuchElementException)
在做web应用的自动化测试时,定位元素是必不可少的,这个过程经常会碰到定位不到元素的情况(报selenium.common.exceptions.NoSuchElementException ...
- Selenium2(webdriver)_定位不到元素常见原因及解决办法
在做web应用的自动化测试时,定位元素是必不可少的,这个过程经常会碰到定位不到元素的情况,一般可以从以下几个方面着手解决: 1.Frame/Iframe原因定位不到元素: 这个是最常见的原因,首先要理 ...
- spring web 脚手架 (持续更新中...)
spring web 脚手架 项目地址: https://github.com/MengW9/scafflod.git 还有觉得哪些可以加上去的配置,欢迎各位拍砖,我会持续更新,大家共同进步 一个通用 ...
- Python+selenium定位不到元素的问题及解决方案
在操作过程中主要遇到两种阻塞的问题,总结如下: 1.页面中有iframe,定位元素时,需要用switch_to.frame()转换到元素所在的frame上再去定位 2.遇到一种新情况,有些按钮在htm ...
- web app遇到的一些坑及小技能(持续更新...)
遇到的一些坑 问题:手机端 click 事件会有大约 300ms 的延迟 原因:手机端事件 touchstart --\> touchmove --> touchend or touchc ...
随机推荐
- IOS 纯代码添加 Button Image Label 添加到自定义View中
@interface ViewController () /**获取.plist数据*/ @property (nonatomic,strong) NSArray *apps; @end @imple ...
- (转载)arcgis for js - 解决加载天地图和WMTS服务,WMTS服务不显示的问题,以及wmts服务密钥。
1 arcgis加载天地图和wmts服务 arcgis for js加载天地图的例子网上有很多,这里先不写了,后期有空再贴代码,这里主要分析下WMTS服务为什么不显示,怎么解决. 条件:这里的WMTS ...
- UESTC 31 饭卡 card
dp,答案容易想到是 凑出价格总和≤m-5 + 没被使用的最大价格. dp[i = 前i种价格][j = 价格总和] = 最大没使用的价格下标idx_m. dp[i-1][j]存在的话,则只要更新id ...
- 2.NBU管理NetBackup
2管理NetBackup2.1NetBackup作业任务监视 NetBackup任务监视器可以监视备份.恢复和归档任务的状态,也可以监视NetBackup本身数据库的备份. 2.1.1Activity ...
- 导航栏上的item的位置设置
/** leftItem */ UIButton *leftbtn = [[UIButton alloc]initWithFrame:CGRectMake(, , , )]; [leftbtn set ...
- P1217 [USACO1.5]回文质数 Prime Palindromes
题目描述 因为151既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数. 写一个程序来找出范围[a,b](5 <= a < b <= 100,000 ...
- git fetch和push的区别
获取fetch的用法 git-fetch用于从另一个reposoitory下载objects和refs. 命令格式为:git fetch … 其中表示远端的仓库路径.git remote add or ...
- Maven - 依赖范围<scope></scope>
6种:
- svn+apache安装配置
1.安装httpd,mod_dav_svn,subversion yum install -y httpd mod_dav_svn subversion 2.创建仓库 mkdir /var/www/s ...
- FreeBSD--如何最有效率的安装软件
Freebsd 下如何最有效率的安装软件 From <https://www.cnblogs.com/apexchu/p/4131821.html> FreeBSD的默认下载工具是fetc ...