欧美三区_成人在线免费观看视频_欧美极品少妇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條評論
主站蜘蛛池模板: 亚洲一二三在线 | 91国在线产| 一级片在线视频 | 国产美女在线免费观看 | 天天操夜夜噜 | 国产成人精品一区在线播放 | 久久精品夜夜夜夜夜久久 | 欧美无玛 | 色婷婷激婷婷深爱五月小说 | 91p在线观看 | 久久国产精品一区二区 | 亚洲精品福利 | 日日噜噜夜夜狠狠视频buoke | 日本美女毛茸茸 | 国产精品一区二区免费 | 天天摸天天揉天天碰天天弄 | 免费免费啪视频在线 | caoporn视频 | 中国一级大黄大黄大色毛片 | 国产一区二区三区久久久久久久久 | 日韩免费一区二区 | 欧美成人午夜影院 | 四虎av| 天天操狠狠操夜夜操 | 在线视频成人 | 国产真实乱子伦清晰对白 | 我把寡妇日出水好爽视频 | 男女超猛烈啪啦啦的免费视频 | 夜夜狠狠操 | 亚洲色图综合图片 | 一级观看免费完整版视频 | 人人人人干 | 乳欲人妻办公室奶水在线电影国产 | 人妻体内射精一区二区三四 | 中文字幕国产一区 | 91视频h | 成人av激情| 九九热久久免费视频 | 人人草视频在线 | 天天操网| 久久精品中文字幕首页 |