簡體   English   中英

如何從selenium java中的json列表中獲取第一個元素?

[英]How fetch first element from json list in selenium java?

我有以下json格式的id列表。 我想使用java訪問selenium中的第一個id。 我試過用

String item = driver.findElement(By.xpath("//ul//li[1]")).getText(); 

但沒有幫助。

 <body>
   <div id="json">
       <span class="collapser"></span>
         {
            <ul class="obj collapsible">
               <li>
                 <span class="prop" title="<root>.hdps">
                   <span class="q">"</span>
                  hdps
                   <span class="q">"</span>
                 </span>
                :
                <span class="collapser"></span>
                 [
                    <ul class="array collapsible">
                          <li>
                              <span class="num">65085</span>
                                  ,
                          </li>
                          <li>
                              <span class="num">65089</span>
                                   ,
                          </li>
                          <li>
                              <span class="num">65711</span>
                                   ,
                          </li>

                      </ul>
                      ]
               </li>
     </ul>
 }
 </div>

我的理解是你試圖讀取元素的ID屬性的值。 我真的不確定你問題的意圖。 但這是如何獲得ID的價值的。

  • 您需要使用各種元素定位器之一來引用元素。 在這種情況下,您已利用By.xpath() 您可以驗證Firefox Xpath檢查程序使用的XPATH的正確性。 一旦使用正確的XPATH ,您將獲得webElement參考。

     WebElement wElement = driver.findElement(By.xpath("//ul//li[1]")); // validate the correct XPATH using available tools - ex : firefox xpath checker etc. 
  • 您需要獲取元素的id屬性的值。

     String requiredID = wElement.getAttribute("id"); 

讓我知道這個是否奏效。

正如pendem回答的那樣,你可以使用xpath獲得你想要的第一個ID。 但是在這里我發現你使用的xpath找到2個元素,因為有兩個ul元素有li 如果你使用具有特定ul和類屬性的xpath作為 - .//ul [@class =“array collapsible”] // li [1]將起作用。

如果您提供了所有相關的HTML,它應該如下所示。

String id = driver.findElement(By.cssSelector("span.num")).getText();

這只返回ID的第一個實例。

如果這不起作用,你將不得不做更多的挖掘,例如這是在IFRAME中還是時間問題或?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM