• 转-web自动化测试,定位不到元素的原因及解决方案


    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."); }

  • 相关阅读:
    Codeforces Round #535 (Div. 3) 1108C
    Codeforces Round #536 (Div. 2) B. Lunar New Year and Food Ordering
    Leetcode--136. Single Number(easy)
    Leetcode--572. Subtree of Another Tree(easy)
    Leetcode--101. Symmetric Tree(easy)
    Leetcode--680. Valid Palindrome II(easy)
    2017百度之星资格赛 1003 度度熊与邪恶大魔王 背包DP
    台州 OJ 1704 Cheapest Palindrome 回文 区间DP
    洛谷 P1019 单词接龙 深搜
    UVA 11882 Biggest Number 深搜 剪枝
  • 原文地址:https://www.cnblogs.com/shen-qiang/p/9777788.html
Copyright © 2020-2023  润新知