簡體   English   中英

如何獲取產品評論,然后點擊<a>評論最多的產品元素(Selenium,Java)</a>

[英]How to get product reviews and then click <a> element of product with most reviews (Selenium, Java)

<section id="135156028" data-scrolled="false" class="AdItem_adOuterHolder__Z29Nf">
     <article class="AdItem_adHolder__GL0yo">
         <a class="Link_link__J4Qd8 Link_inherit___qXEP" target="_self" id="" rel="" role="button" 
                   tabindex="-1" href=".." style="align-items: flex-start;">
             <div class="AdItem_imageHolder__DYGd_" style="max-width: 128px; min-width: 128px; height:                                                              
                         120px;">
                 <img src="...">
             </div>
         </a>
         <div class="AdItem_descriptionHolder__xnkD4">
             <div class="AdItem_adInfoHolder___36KR"></div>
             <div class="AdItem_price__k0rQn">650 din</div>
             <div>
                  <div class="AdItem_viewAndFavorite__pjskf">
                      <div class="AdItem_favoriteHolder__bKBRE">
                          <svg width="16" height="16" viewBox="0 0 16 16" fill="none" 
                               xmlns="http://www.w3.org/2000/svg" class="asIcon_greyStroke__NU1Xe  
                               asIcon_svg__Zm34q">
                          </svg>
                          <span class="AdItem_count__iNDqG">**144**</span>
                       </div>
                       <div class="AdItem_favoriteHolder__bKBRE">
                           <svg width="16" height="16" viewBox="0 0 16 16" fill="none" 
                                xmlns="http://www.w3.org/2000/svg" class="asIcon_greyStroke__NU1Xe 
                                asIcon_svg__Zm34q">
                           </svg>
                           <span class="AdItem_count__iNDqG">13</span>
                      </div>
                   </div>
                   <div class="AdItem_postedStatus__C6vfK">...</div>
              </div>
         </div>
      </article>
 </section>

這是代碼,我刪除了一些不必要的東西,但如果我刪除了代碼的一些重要部分,鏈接在這里:[https://novi.kupujemprodajem.com/mama-i-beba/oprema-za-hranjenje- i-dojenje/grupa/18/2473/1]。 我拿了隨機產品來分享代碼,而不是瀏覽量最多的產品,但我想做的是從這里獲取瀏覽量:"xpath = "//div[@class='AdItem_viewAndFavorite__pjskf']//div[1] “,檢查哪個產品的數量最多,然后我想點擊那個產品的元素。我是新手,我不知道如何連接這些,我在互聯網上沒有找到任何解決方案。網。

我試過這樣的事情:

@FindBy(xpath = "//div[@class='AdItem_name__BppRQ']")
    List<WebElement> productsList;
@FindBy(xpath = "//div[@class='AdItem_viewAndFavorite__pjskf']//div[1]")
    List<WebElement> productViewsList;   

public SingleProductPage chooseHighestViewsProduct(){

   String productName;
   String productViews;
   int numberOfViews;
    
   HashMap<Integer,String> mapFinalProducts = new HashMap<Integer, String>();
        for (int i=0;i<productsList.size();i++){
            productName = productsList.get(i).getText();
            productViews = productViewsList.get(i).getText();
            numberOfViews = Integer.parseInt(productViews);
            mapFinalProducts.put(numberOfViews, productName);
        }
   Set<Integer> allKeys = mapFinalProducts.keySet();
   ArrayList<Integer> listOfProductValues = new ArrayList<Integer>(allKeys);
   Collections.sort(listOfProductValues);
   int highestViews = listOfProductValues.get(listOfProductValues.size()-1);
}

通過這種方式我得到了瀏覽量最多的產品,但是因為那個 span 是不可點擊的,所以我不知道如何點擊它的鏈接。

一旦獲得最多的瀏覽量產品,然后找到標簽的前a元素,然后單擊。

productViewsList.get(highestViews).findElement(By.xpath("./preceding::a[1]")).click()

暫無
暫無

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

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