hamburgerMenu 无法使用硒

hamburgerMenu is not working using selenium

网站 Link:https://catevolution.com.au/

HTML代码:

<div id="top" class="full-width">
   <div class="background-top"></div>
   <div class="background">
      <div class="shadow"></div>
      <div class="pattern">
         <div class="container">
            <div class="row">
               <div class="col-sm-4" id="header-left">
                  <div class="logo"><a href="https://catevolution.com.au"><img title="Cat Evolution" alt="Cat Evolution" nitro-lazy-src="https://nitrocdn.com/ZBTgCclWrYZojiCeCJknQxXkexTesFSn/assets/static/optimized/rev-66b43b2/image/catalog/donelogo.jpg" class=" lazyloaded" nitro-lazy-empty="" src="https://nitrocdn.com/ZBTgCclWrYZojiCeCJknQxXkexTesFSn/assets/static/optimized/rev-66b43b2/image/catalog/donelogo.jpg"></a></div>
                  <div class="sec"><a href="https://catevolution.com.au"><img title="Cat Evolution" alt="Cat Evolution" nitro-lazy-src="https://nitrocdn.com/ZBTgCclWrYZojiCeCJknQxXkexTesFSn/assets/static/optimized/rev-66b43b2/image/catalog/donelogo.jpg" class=" ls-is-cached lazyloaded" nitro-lazy-empty="" src="https://nitrocdn.com/ZBTgCclWrYZojiCeCJknQxXkexTesFSn/assets/static/optimized/rev-66b43b2/image/catalog/donelogo.jpg"></a></div>
               </div>
               <div class="col-sm-8" id="header-right">
                  <div class="search_form">
                     <div class="button-search"></div>
                     <div class="search-cat">
                        <div class="select">
                           <select name="category_id" class="form-control">
                              <option value="0">All categories</option>
                              <option value="67">Contempocat Trees</option>
                              <option value="71">Litter-Robot Connect</option>
                              <option value="60">Litter-Robot III Open Air</option>
                              <option value="65">Petfun</option>
                              <option value="70">Smart Pet Feeder</option>
                              <option value="72">Tofu Cat Litter</option>
                              <option value="74">Workshop Spares</option>
                              <option value="75">Workshop Spares</option>
                              <option value="57">MEYOU UNIQUE DESIGNER CAT BEDS | CAT PODS</option>
                              <option value="17">Premium Clumping Cat Litter</option>
                              <option value="61">Litter-Robot Accessories</option>
                              <option value="73">Reconditioned Litter-Robots</option>
                              <option value="64">FELLI PET</option>
                              <option value="62">Litter Robot Components</option>
                              <option value="68">Contempocat Spares</option>
                              <option value="69">Track Courier</option>
                           </select>
                        </div>
                     </div>
                     <div class="overflow-input"><input type="text" class="input-block-level search-query" name="search" placeholder="Search" id="search_query" value=""></div>
                     <div id="autocomplete-results" class="autocomplete-results"></div>
                  </div>
                  <a href="https://catevolution.com.au/index.php?route=account/account" class="my-account"><i class="fa fa-user"></i></a> 
                  <div class="resp-accountq"> <a href="https://catevolution.com.au/index.php?route=account/account" onclick="window.location.href = 'https://catevolution.com.au/index.php?route=account/account'" class="my-account qa-account" data-hover="dropdown" data-toggle="dropdown"><i class="fa fa-user"></i></a> </div>
                  <div id="cart_block" class="dropdown">
                     <div class="cart-heading dropdown-toogle" data-hover="dropdown" data-toggle="dropdown" onclick="window.location.href = 'https://catevolution.com.au/index.php?route=checkout/cart'">
                        <i class="cart-count"><span id="total_count_ajax">0</span></i> <i class="cart-icon"><img alt="" nitro-lazy-src="https://nitrocdn.com/ZBTgCclWrYZojiCeCJknQxXkexTesFSn/assets/static/optimized/rev-66b43b2/catalog/view/theme/fastor/img/icon-cart-hover.png" class="cart-icon-hover lazyloaded" nitro-lazy-empty="" src="https://nitrocdn.com/ZBTgCclWrYZojiCeCJknQxXkexTesFSn/assets/static/optimized/rev-66b43b2/catalog/view/theme/fastor/img/icon-cart-hover.png"><img alt="" nitro-lazy-src="https://nitrocdn.com/ZBTgCclWrYZojiCeCJknQxXkexTesFSn/assets/static/optimized/rev-66b43b2/catalog/view/theme/fastor/img/icon-cart.png" class="cart-icon-standard lazyloaded" nitro-lazy-empty="" src="https://nitrocdn.com/ZBTgCclWrYZojiCeCJknQxXkexTesFSn/assets/static/optimized/rev-66b43b2/catalog/view/theme/fastor/img/icon-cart.png"></i> 
                        <p><strong id="total_price_ajax"><span id="total_price">[=10=].00</span></strong></p>
                     </div>
                     <div class="dropdown-menu" id="cart_content">
                        <div id="cart_content_ajax">
                           <div class="empty">Your shopping cart is empty!</div>
                        </div>
                     </div>
                  </div>
               </div>
            </div>
         </div>
         <div class="megamenu-background">
            <div class="">
               <div class="overflow-megamenu container">
                  <div id="megamenu_33871725" class="container-megamenu container horizontal">
                     <div class="megaMenuToggle">
                        <div class="megamenuToogle-wrapper">
                           <div class="megamenuToogle-pattern">
                              <div class="container">
                                 <div id="burger_menu_sel"><span></span><span></span><span></span></div>
                                 Navigation 
                              </div>
                           </div>
                        </div>
                     </div>
                     <div class="megamenu-wrapper">
                        <div class="megamenu-pattern">
                           <div class="container">
                              <ul class="megamenu flipping">
                                 <li class=" with-sub-menu hover">
                                    <p class="close-menu"></p>
                                    <p class="open-menu"></p>
                                    <a href="litter-robot-iii-open-air.html" class="clearfix"><span><strong>Litter Robot</strong></span></a>
                                    <div class="sub-menu " style="width:750px;">
                                       <div class="content">
                                          <p class="arrow"></p>
                                          <div class="row">
                                             <div class="col-sm-12  mobile-enabled"><a href="litter-robot-iii-open-air.html">Automatic Self Cleaning Litter-Robot</a> </div>
                                          </div>
                                          <div class="border"></div>
                                          <div class="row">
                                             <div class="col-sm-12  mobile-enabled"><a href="litter-robot-3-connect.html">Litter-Robot Connect</a></div>
                                          </div>
                                          <div class="border"></div>
                                          <div class="row">
                                             <div class="col-sm-12  mobile-enabled"><a href="litter-robot-accessories">Accessories</a></div>
                                          </div>
                                          <div class="border"></div>
                                          <div class="row">
                                             <div class="col-sm-12  mobile-enabled"><a href="litter-robot-components.html">Litter Robot Components</a></div>
                                          </div>
                                          <div class="border"></div>
                                          <div class="row">
                                             <div class="col-sm-12  mobile-enabled"><a href="reconditioned-litter-robots">Reconditioned Litter-Robots</a></div>
                                          </div>
                                       </div>
                                    </div>
                                 </li>
                                 <li class=" with-sub-menu hover">
                                    <p class="close-menu"></p>
                                    <p class="open-menu"></p>
                                    <a href="contempocat-trees" class="clearfix"><span><strong>Cat Tower</strong></span></a>
                                    <div class="sub-menu full-width-sub-menu" style="width:100%;">
                                       <div class="content">
                                          <p class="arrow"></p>
                                          <div class="row">
                                             <div class="col-sm-12  mobile-enabled"><a href="contempocat-trees/elevation-cat-tree">Elevation Cat Tower</a></div>
                                          </div>
                                          <div class="border"></div>
                                          <div class="row">
                                             <div class="col-sm-12  mobile-enabled"><a href="contempocat-trees/elevation-jr-cat-tower">Elevation Jr Cat Tower</a></div>
                                          </div>
                                          <div class="border"></div>
                                          <div class="row">
                                             <div class="col-sm-12  mobile-enabled"><a href="contempocat-trees/contoure-cat-tower">Contoure Cat Tree</a></div>
                                          </div>
                                       </div>
                                    </div>
                                 </li>
                                 <li class=" with-sub-menu hover">
                                    <p class="close-menu"></p>
                                    <p class="open-menu"></p>
                                    <a href="JavaScript:void(0)" class="clearfix"><span><strong>Feeders &amp; Fountains</strong></span></a>
                                    <div class="sub-menu " style="width:750px;">
                                       <div class="content">
                                          <p class="arrow"></p>
                                          <div class="row">
                                             <div class="col-sm-12  mobile-enabled"><a href="autofeeder.html">Auto Pet Feeder with Camera</a></div>
                                          </div>
                                          <div class="border"></div>
                                          <div class="row">
                                             <div class="col-sm-12  mobile-enabled"><a href="pet-water-fountain.html">Filtered Water Fountain</a></div>
                                          </div>
                                          <div class="border"></div>
                                          <div class="row">
                                             <div class="col-sm-12  mobile-enabled"><a href="W1_filter_replacement.html">Petwant Filter Replacement</a></div>
                                          </div>
                                          <div class="border"></div>
                                          <div class="row">
                                             <div class="col-sm-12  mobile-enabled"><a href="smart-water-bowl">Smart Water Fountain</a></div>
                                          </div>
                                          <div class="border"></div>
                                          <div class="row">
                                             <div class="col-sm-12  mobile-enabled"><a href="water-bowl-filter">Petfun Water Replacement Filters</a></div>
                                          </div>
                                       </div>
                                    </div>
                                 </li>
                                 <li class="">
                                    <p class="close-menu"></p>
                                    <p class="open-menu mobile-disabled"></p>
                                    <a href="meyou" class="clearfix"><span><strong>Meyou Cat Bed</strong></span></a>
                                 </li>
                                 <li class="">
                                    <p class="close-menu"></p>
                                    <p class="open-menu mobile-disabled"></p>
                                    <a href="felli-pet-bowls" class="clearfix"><span><strong>Felli Pet Bowls</strong></span></a>
                                 </li>
                                 <li class=" with-sub-menu hover">
                                    <p class="close-menu"></p>
                                    <p class="open-menu"></p>
                                    <a href="premium-clumping-cat-litter.html" class="clearfix"><span><strong>Cat Litter</strong></span></a>
                                    <div class="sub-menu full-width-sub-menu" style="width:100%;">
                                       <div class="content">
                                          <p class="arrow"></p>
                                          <div class="row">
                                             <div class="col-sm-12  mobile-enabled"><a href="premium-clumping-cat-litter.html">Premium Clumping Cat Litter</a></div>
                                          </div>
                                          <div class="border"></div>
                                          <div class="row">
                                             <div class="col-sm-12  mobile-enabled"><a href="tofu-carbon-cat-litter.html">Tofu + Carbon Clumping Cat Litter</a></div>
                                          </div>
                                          <div class="border"></div>
                                          <div class="row">
                                             <div class="col-sm-12  mobile-enabled"><a href="https://catevolution.com.au/moshizon-clumping-cat-litter.html">Moshizon Clay Clumping Litter</a></div>
                                          </div>
                                       </div>
                                    </div>
                                 </li>
                                 <li class="">
                                    <p class="close-menu"></p>
                                    <p class="open-menu mobile-disabled"></p>
                                    <a href="index.php?route=extension/module/productbundles/listing" class="clearfix"><span><strong>Specials</strong></span></a>
                                 </li>
                              </ul>
                           </div>
                        </div>
                     </div>
                  </div>
                  <template data-nitro-marker-id="9a234f5d0645013a62b0b6769ff33645-1"></template>
                  <script src="blob:https://catevolution.com.au/a4f12dbf-ab12-499b-bfa9-6f974ce9caaf" data-nitro-for-id="9a234f5d0645013a62b0b6769ff33645-1" type="text/javascript" id="9a234f5d0645013a62b0b6769ff33645-1"></script> 
               </div>
            </div>
         </div>
      </div>
   </div>
</div>

我使用 Selenium WebDriver 编写了测试,但在移动视图中打开菜单栏时遇到问题。

Link 到汉堡菜单定位器。

driver.findElement(By.xpath("/html/body/div[3]/div/header/div[2]/div/div[2]/div[2]/div[2]/div/div/div/div[1]")).click();

我尝试了所有点击菜单的方法,但它不起作用。 方法我尝试点击菜单

  1. css选择器
  2. xpath

试试这些 Xpath 表达式之一:

  • "//div[@class='megamenuToggle-wrapper']"

或者:

  • "//div[包含(text(),'Navigation')]"

这个CSS选择器

.megaMenuToggle.active>.megamenuToogle-wrapper>.megamenuToogle-pattern>.container>div

应该可以,您需要等到它可以点击。 这个应该更好用:第一个是针对活动元素的:

header:nth-of-type(1) .megamenuToogle-pattern>.container>div

说明:

1 header:nth-of-type(1) - 名为 header

的第一个元素

2 .megamenuToogle-pattern class 名字为 megamenuToogle-pattern,不是直系子女

3 >.container>div- class megamenuToogle-pattern 的直接子 class 及其直接子 div。您使用 > char 来表明该元素是直接子元素。