欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Selenium2學習-013-WebUI自動化實戰實例-011-We

系統 1670 0

今天有個朋友在群里問 WebElement.getText() 值為空,當你發現取到的值為空的時候,會不會郁悶呢?明明看到的值不為空,腳本看著也沒有問題啊,為何取到的值為空呢!!!萬千糾結啊,若是長時間困在此處,是不是猶如修煉沖關遇到了瓶頸,就差那么一點點就可得道,哎。。。。。。

不知道其他的各位小主們有沒有遇到過這種情況,下面俺就針對此問題提出一些俺自己的見解,敬請各位小主參閱,若有不足或錯誤之處,敬請大神告知,非常感謝!

出現此種情況的原因有以下幾點:

1、元素隱藏,即 WebElement.isDisplayed = false,當 WebDriver 斷定 isDisplayed = false 時,WebElement.getText() 值為空;

???? --> 解決方法:通過 js 修改元素的屬性,使其 CSS display 的值為 block,而非 none

2、元素的值存在某個屬性當中,例如 value 屬性,此種一般是通過 js 操作賦值到 value 的

???? --> 解決方法:通過 WebElement.getAttribute('') 獲取對應的值,當 isDisplayed = false 時,WebElement.getAttribute('') 可正確獲取元素對應的屬性值

3、當前元素并未存儲相應的操作值,操作值被存在了其他的地方

???? --> 解決方法:找到對應的元素,獲取值

同時,俺在網上找到了一個實例對應上述三個原因的第 3 點,因而就以易迅網搜索商品的搜索框為例,實際演示一下,以下為源碼,請參閱:

        
           1
        
        
          package
        
        
           main.aaron.demo.javascript;


        
        
           2
        
        
           3
        
        
          import
        
        
           org.openqa.selenium.By;


        
        
           4
        
        
          import
        
        
           org.openqa.selenium.JavascriptExecutor;


        
        
           5
        
        
          import
        
        
           org.openqa.selenium.WebElement;


        
        
           6
        
        
          import
        
        
           org.testng.annotations.Test;


        
        
           7
        
        
           8
        
        
          import
        
        
           main.aaron.sele.core.TestCase;


        
        
           9
        
        
          10
        
        
          /**
        
        
          11
        
        
           * JavaScript 在 Selenium 自動化中的應用實例


        
        
          12
        
        
           * 


        
        
          13
        
        
           * 
        
        
          @author
        
        
           Aaron.ffp


        
        
          14
        
        
           * 
        
        
          @version
        
        
           V1.0.0: autoSeleniumDemo main.aaron.demo.javascript JavaScript.java, 2015-6-17 00:24:59 Exp $


        
        
          15
        
        
          */
        
        
          16
        
        
          public
        
        
          class
        
         JavaScript 
        
          extends
        
        
           TestCase{


        
        
          17
        
        
          //
        
        
           執行 JavaScript 腳本,輸入查詢內容
        
        
          18
        
        
          private
        
         String jscript = "document.getElementById('q_show').value='iPhone 6 plus'"
        
          ;


        
        
          19
        
        
          private
        
         String baseUrl = "http://www.yixun.com/"
        
          ;


        
        
          20
        
        
          21
        
        
          /**
        
        
          22
        
        
               * JavaScript 賦值


        
        
          23
        
        
               * 


        
        
          24
        
        
               * 
        
        
          @author
        
        
           Aaron.ffp


        
        
          25
        
        
               * 
        
        
          @version
        
        
           V1.0.0: autoSeleniumDemo main.aaron.demo.javascript JavaScript.java testJscript, 2015-6-17 12:37:57 Exp $


        
        
          26
        
        
               * 


        
        
          27
        
        
               * 
        
        
          @throws
        
        
           InterruptedException


        
        
          28
        
        
          */
        
        
          29
        
        
              @Test


        
        
          30
        
        
          public
        
        
          void
        
         testJscript() 
        
          throws
        
        
           InterruptedException{


        
        
          31
        
        
          //
        
        
           打開易迅網首頁
        
        
          32
        
        
          this
        
        .webdriver.get(
        
          this
        
        
          .baseUrl);


        
        
          33
        
        
          34
        
        
          //
        
        
           獲取搜索按鈕
        
        
          35
        
                 WebElement search = 
        
          this
        
        .webdriver.findElement(By.cssSelector(".mod_search_btn"
        
          ));


        
        
          36
        
        
          37
        
        
          //
        
        
           輸入查詢值
        
        
          38
        
        
          this
        
        
          .execJavascript(jscript);


        
        
          39
        
        
          40
        
        
          //
        
        
           獲取搜索框
        
        
          41
        
                 WebElement in = 
        
          this
        
        .webdriver.findElement(By.id("q_show"
        
          ));


        
        
          42
        
        
          43
        
        
          //
        
        
           點擊搜索按鈕
        
        
          44
        
        
                  search.click();


        
        
          45
        
        
          46
        
        
          //
        
        
           獲取搜索值的真正存儲位置
        
        
          47
        
                 WebElement intext = 
        
          this
        
        .webdriver.findElement(By.cssSelector("#keyWord"
        
          ));


        
        
          48
        
        
          49
        
        
          //
        
        
           頁面刷新,需要重新獲取元素,否則會報錯
        
        
          50
        
                 in = 
        
          this
        
        .webdriver.findElement(By.id("q_show"
        
          ));


        
        
          51
        
        
          52
        
        
          //
        
        
           搜索框中的值未曾保存在 q_show 元素內,因而最終獲得的值為空
        
        
          53
        
                 System.out.println("現像值 --- q_show.getText() : " +
        
           in.getText());


        
        
          54
        
        
          //
        
        
           搜索框中的值實際保存的元素,對應值為空的第二種原因
        
        
          55
        
                 System.out.println("本質值,對應值為空的第二種原因 --- #keyWord.getAttribute('') : " +
        
           intext.getText());


        
        
          56
        
        
          //
        
        
           搜索框中的值實際保存的元素,對應值為空的第三種原因
        
        
          57
        
                 System.out.println("本質值,對應值為空的第三種原因 --- #keyWord.getAttribute('') : " + intext.getAttribute("value"
        
          ));


        
        
          58
        
        
          59
        
        
          this
        
        
          .webdriver.close();


        
        
          60
        
        
          this
        
        
          .webdriver.quit();


        
        
          61
        
        
              }


        
        
          62
        
        
          63
        
        
          /**
        
        
          64
        
        
               * 執行 JScript 腳本


        
        
          65
        
        
               * 


        
        
          66
        
        
               * 
        
        
          @author
        
        
           Aaron.ffp


        
        
          67
        
        
               * 
        
        
          @version
        
        
           V1.0.0: autoUISelenium main.java.aaron.sele.core SeleniumCore.java execJavascript, 2015-6-17 00:25:38 Exp $


        
        
          68
        
        
               * 


        
        
          69
        
        
               * 
        
        
          @param
        
        
           jscript 腳本


        
        
          70
        
        
          */
        
        
          71
        
        
          public
        
        
          void
        
        
           execJavascript(String jscript){


        
        
          72
        
                 ((JavascriptExecutor)
        
          this
        
        
          .webdriver).executeScript(jscript);


        
        
          73
        
        
              }


        
        
          74
        
         }
      
WebElement.getText() 為空及解決實現源代碼

至此, WebUI 自動化功能測試腳本 第 011 篇-WebElement.getText()值為空問題探索及解決 順利完結,希望此文能夠給初學 Selenium 的您一份參考。

最后,非常感謝親的駐足,希望此文能對親有所幫助。熱烈歡迎親一起探討,共同進步。非常感謝! ^_^

Selenium2學習-013-WebUI自動化實戰實例-011-WebElement.getText()值為空問題探索及解決


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 久久国产精品精品国产 | 久久成人一区二区 | 婷婷资源 | 色在线视频观看 | 天天骑夜夜操 | 国产三级在线视频播放线 | 亚洲天堂三级 | 久久久久免费视频 | 毛片成人永久免费视频 | av电影网站在线观看 | 精品国产久 | 一区二区国产精品 | 精品国产91乱码一区二区三区 | 一级毛片免费视频 | wankzhd| 噜噜色网 | 欧美不卡视频一区发布 | 大ji巴好好爽好深网站 | 日本黄色免费网站 | 精品视频在线观看 | 在线看av的网址 | 99精品久久 | 色老师| 亚洲精品久久久一二三区 | 日韩黄色影视 | 国产精品成人在线播放 | 三级黄色毛片视频 | 精品国产欧美一区二区 | 日本黄视色视频在线观看 | 看片亚洲| 欧美伊人 | 国产成人精品一区二区仙踪林 | 午夜性刺激小说 | 999毛片免费观看 | 国产区在线观看 | 久久婷婷色香五月综合激情 | 日日爽天天 | 日日噜噜夜夜狠狠视频buoke | 久草福利资源网站免费 | 一区二区免费视频观看 | 这里只有精品99re |