自动化测试定位不到元素怎么办?

向右看齐 2024-03-25 00:11 155阅读 0赞

1.动态id定位不到元素

分析原因:每次打开页面,ID都会变化。用ID去找元素,每次刷新页面ID都会发生变化。

解决方案:推荐使用xpath的相对路径方法或者cssSelector查找到该元素。

2.iframe原因定位不到元素

分析原因:你要找的元素在某个框架(frame)里面

解决方案:跳转到该框架里,再查找元素。

  1. driver.switchTo().frame("login_frame");
  2. driver.switchTo().frame(driver.findElement(By.cssSelector("iframe[frameborder='0']")));
  3. 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.”); }

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

" class="reference-link">在这里插入图片描述

软件测试面试小程序

被百万人刷爆的软件测试题库!!!谁用谁知道!!!全网最全面试刷题小程序,手机就可以刷题,地铁上公交上,卷起来!

涵盖以下这些面试题板块:

1、软件测试基础理论 ,2、web,app,接口功能测试 ,3、网络 ,4、数据库 ,5、linux

6、web,app,接口自动化 ,7、性能测试 ,8、编程基础,9、hr面试题 ,10、开放性测试题,11、安全测试,12、计算机基础

a04a286764814986a179a6ea4a30b0cb.png

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

发表评论

表情:
评论列表 (有 0 条评论,155人围观)

还没有评论,来说两句吧...

相关阅读