簡體   English   中英

Selenium Webdriver - 如何在CSS菜單中選擇元素

[英]Selenium Webdriver - How to select element in CSS Menu

我不知道如何點擊CSS下拉菜單上的菜單項。 菜單的結構如下所示:

    <ul id="nav" class="clearfix" role="navigation">
    <li>
    <li class="navMenu navActive">
              <a href="/test.user/beratung/wie-ich-sie-unterstuetze/">Allfinanzberatung</a>
         <ul class="subMenu" role="navigation">
             <li class=" subMenuPoint">
                <div class="left">
                       <a class="right" href="/test.user/beratung/wie-ich-sie-unterstuetze/">Wie ich Sie unterstütze</a>    <- I want to Select this Menu Point
                </div>
              </li>
         </ul>
    <li class=" subMenuPoint">
    <li class=" subMenuPoint">
    <li class="last subMenuPoint">
    </ul>

我已嘗試使用以下代碼,但它不起作用:( Eclipse Junit

WebElement elems=driver.findElement(By.linkText("Wie ich Sie unterstütze"));//Menu Item
WebElement elems1=driver.findElement(By.xpath("//li[@nav']/a"));//Menu
Actions builder = new Actions(driver); 
Actions hoverOverRegistrar = builder.moveToElement(elems1);
hoverOverRegistrar.perform();
elems.click();//at last Menu Item Click

首先,謝謝大家,

但不幸的是它仍然無法正常工作。 這里再次是菜單的代碼。

<ul id="nav" class="clearfix" role="navigation">
  <li class="navMenu">
    <a href="/test.user/beratung/wie-ich-sie-unterstuetze/">beratung</a>
    <ul class="subMenu" role="navigation">
      <li class=" subMenuPoint">
        <div class="left">
          <a class="right" href="/test.user/beratung/wie-ich-sie-unterstuetze/">Wie ich Sie unterstütze</a>
        </div>
      </li>
      <li class=" subMenuPoint">
        <div class="left">
          <a class="right" href="/test.user/beratung/wie-ich-sie-berate/">Wie ich Sie berate</a>
        </div>
      </li>
      <li class=" subMenuPoint">
        <div class="left">
          <a class="right" href="/test.user/beratung/produktwelt/">Produktwelt</a>
        </div>
      </li>
      <li class=" subMenuPoint">
        <div class="left">
          <a class="right" href="/test.user/beratung/auszeichnungen/">Auszeichnungen</a>
        </div>
      </li>
      <li class=" subMenuPoint">
        <div class="left">
          <a class="right" href="/test.user/beratung/premium-partner/">Premium-Partner</a>
        </div>
      </li>
      <li class="last subMenuPoint">
        <div class="left">
          <a class="right" href="/test.user/beratung/ihr-allfinanzcheck/">Ihr Allfinanzcheck</a>
        </div>
      </li>
    </ul>
  </li>
  <li>
    <img alt="" src="/test.user/javax.faces.resource/pic_bg_main_menu_separator.png.xhtml?ln=images/frontend/menus" />
  </li>
  <li class="navMenu">
    <a href="/test.user/karriere/ihre-perspektiven/">Karriere</a>
    <ul class="subMenu" role="navigation">
      <li class=" subMenuPoint">
        <div class="left">
          <a class="right" href="/test.user/karriere/ihre-perspektiven/">Ihre Perspektiven</a>
        </div>
      </li>
      <li class=" subMenuPoint">
        <div class="left">
          <a class="right" href="/test.user/karriere/ihr-neuer-beruf/">Ihr neuer Beruf</a>
        </div>
      </li>
      <li class=" subMenuPoint">
        <div class="left">
          <a class="right" href="/test.user/karriere/ihr-karrierefahrplan/">Ihr Karrierefahrplan</a>
        </div>
      </li>
      <li class=" subMenuPoint">
        <div class="left">
          <a class="right" href="/test.user/karriere/ihr-karrierecheck/">Ihr Karrierecheck</a>
        </div>
      </li>
      <li class=" subMenuPoint">
        <div class="left">
          <a class="right" href="/test.user/karriere/was-andere-sagen/">Was andere sagen</a>
        </div>
      </li>
      <li class=" subMenuPoint">
        <div class="left">
          <a class="right" href="/test.user/karriere/auszeichnungen/">Auszeichnungen</a>
        </div>
      </li>
      <li class=" subMenuPoint">
        <div class="left">
          <a class="right" href="/test.user/karriere/freie-stellen/">Freie Stellen</a>
        </div>
      </li>
      <li class="last subMenuPoint">
        <div class="left">
          <a class="right" href="/test.user/karriere/im-falschen-film/">Führen Sie selbst Regie</a>
        </div>
      </li>
    </ul>
  </li>
</ul>

這段代碼選擇了第四個元素,所以“karriere”就是好的driver.findElement(By.cssSelector("#nav > li:nth-child(4) a")).click();

但不幸的是我無法選擇它的第二個元素 - > Karriere - > Ihr neuer Beruf

我試試這個,但它很有用

driver.findElement(By.cssSelector("#nav > li:nth-child(4) li:nth-child(2) a")).click();

錯誤是什么?

嘗試

driver.findElement(By.cssSelector(".navMenu a")).click();

這個發現與類navMenu的元素,然后選擇第一子即是一個html < >元件(又名您的鏈路),並點擊它。

Css選擇器不支持跨平台瀏覽器,您必須使用xpath。

如果你想選擇“Wie ichSieunterstütze”

然后用

element= driver.findelement(By.xpath("//ul[@class='clearfix']/li/ul/li[1]/div/a"));
element.click();

如果你想選擇“Wie ich Sie berate”

element= driver.findelement(By.xpath("//ul[@class='clearfix']/li/ul/li[1]/div/a"));
element.click();

暫無
暫無

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

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