qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          Selenium定位不到元素的解決方法—iframe擋住了去路

           剛接觸Selenium,在調試過程中發(fā)現(xiàn)有些元素定位不到,于是求助了百度,查找到的資料是這么說的:如果需要定位的元素在某個frame里,則單獨通過id/name/xpath是定位不到此元素的。比如,原本想通過WebElement element=driver.FindElement(By.LinkText("XXX"));來定位元素的,但由于該元素在iframe. id="left_frame"這個frame里面,所以需要先定位frame,WebElement element=driver.SwitchTo().Frame("left_frame").FindElement(By.LinkText("XXX"));
            此外還有個問題,就是相關的操作是在不同的frame中定位元素的。比如,先在left_frame中定位元素Id=TestFor1,然后在right_frame中定位元素Id=TestFor2。這種情況下,先切到left_frame,driver.SwitchTo().Frame("left_frame");再定位元素TestFor1,driver.FindElement(By.Id("TestFor1"));再切到默認的content,driver.SwitchTo().DefaultContent();再切到right_frame,driver.SwitchTo().Frame("right_frame");再定位元素TestFor2,driver.FindElement(By.Id("TestFor2"));
            在實際應用中,該方法能解決元素無法定位的問題,寫了個C#通用接口(不管元素是否在frame里面),如下:
            publicIWebElementGetElement(stringstrDefined,boolbFrame.=false)
            {
            try
            {
            // 如果元素不在frame中,則切到默認的content
            if(!bFrame)
            {
            _webDriver.SwitchTo().DefaultContent();
            }
            IWebElementele=null;
            stringstrFrame.=m_cc.GetElementFrame(strDefined);
            // 如果元素在frame里,先切到frame
            if(null!=strFrame.&&""!=strFrame)
            {
            IWebElementFrameEle=GetElement(strFrame,true);
            _webDriver.SwitchTo().Frame(FrameEle);
            }
            stringstrID=m_cc.GetElementID(strDefined);
            // 如果元素的ID為空,則通過XPath來定位元素
            if(""==strID)
            {
            stringstrXPath=m_cc.GetElementXPath(strDefined);
            else=_webDriver.FindElement(By.XPath(strXPath));
            }
            else
            }
            }
          版權聲明:本文出自 xiaobaiwdn 的51Testing軟件測試博客:http://www.51testing.com/?367232
          原創(chuàng)作品,轉載時請務必以超鏈接形式標明本文原始出處、作者信息和本聲明,否則將追究法律責任。

          posted on 2014-01-02 09:31 順其自然EVO 閱讀(3647) 評論(0)  編輯  收藏 所屬分類: selenium and watir webdrivers 自動化測試學習

          <2014年1月>
          2930311234
          567891011
          12131415161718
          19202122232425
          2627282930311
          2345678

          導航

          統(tǒng)計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 襄樊市| 沛县| 浑源县| 宝清县| 会宁县| 东台市| 墨竹工卡县| 宁安市| 谢通门县| 奉化市| 鱼台县| 沙坪坝区| 宽甸| 昌黎县| 财经| 洱源县| 镇康县| 潮安县| 横峰县| 克山县| 原平市| 巧家县| 烟台市| 如东县| 大荔县| 洛宁县| 辛集市| 平舆县| 秦皇岛市| 蒙自县| 大同市| 枣庄市| 甘泉县| 潜江市| 子洲县| 屏东市| 遵化市| 齐齐哈尔市| 璧山县| 县级市| 广元市|