• 关于iframe定位碰到的问题。


    这几天在做自动化测试的时候发现一个问题,用JQUERY定位时,总是报错,MES:JQUERY IS NOT DEFINED。

    检查自己定位没有问题,后来想是不是语法出了问题。

    切换成XPATH来定位,还是报错。

    然后再语法调试,发现NAME属性不能定位,不具有唯一性,有三个NAME值一样的IFRAME。

    当时具体情况是:IFRAME有三个属性,NAME,SRC,CLASS。三个IFRAME除了SRC值不一样外,其它两个属性的值都一样。

    所以只能通过SRC值来区分IFRAME了。

    最后解决是通过:dom=document.querySelector("[src='.....']")   这个语法定位成功了。

    通过这个事情,我联想到,在做自动化测试的时候,定位是一个困难点,我习惯用JQUERY来定位,因为我是用RF框架做自动化的。

    而定位碰到困难时,很大一部分是有FRAME,IFRAME存在,特别是多层嵌套的IFRME。

    当发现定位失败时,第一步:先调试语法,如果确信定位语法没有问题,就考虑第二步。

                                   第二步:检查IFRAME是否存在,存在几个(可能谷歌浏览器开发者工具最下面一栏查看到IFRAME的个数及位置),如果存在IFRAME,就先定位IFRAME。一般通过IFRAME的NAME,ID来定位IFRAME。

    大部份的IFRAME能通过NAME,ID定位出来。(如果没有NAME,ID,就参考另一篇博客,自已赋值一个ID),如果存在多个IFRAME,就一个一个的往里定位,直到定位到我们需要定位元素的那一层。

                                第三步:如果不存在IFRAME,就检查是否切换了窗口。如果切换了窗口,就切换到我们需要定位元素的那个窗口,然后就可以正常定位元素 了。

    具体情况还需要自己在做项目的时候,多总结,多练习。我这里只是提供一个思路。

  • 相关阅读:
    Razor 视图引擎的一些属性和方法
    Asp.Net Mvc Razor
    微信小程序时代已经来临
    ionic常用命令记录
    ionic中将service中异步返回的数据赋值给controller的$scope
    nodejs连接mysql实例
    转载:ionic+nodejs开发遇到的跨域和post请求数据问题
    NodeJs-- 新建项目实例
    Bootstrap学习指南
    ios开发环境配置及cordova安装与常用命令
  • 原文地址:https://www.cnblogs.com/star12111/p/7885444.html
Copyright © 2020-2023  润新知