2017-10-05 2 views
0

Ich versuche, einen Wert aus einem Dropdown-Menü mit Selen-Webdriver auszuwählen, aber es öffnet nur das Dropdown-Menü und schließt es sofort. HierWert aus Dropdown mit Selen-Webdriver auswählen

ist der Code für WebDriver:

driver.findElement(By.cssSelector("span.k-select ")).click(); 
     Thread.sleep(3000); 
     driver.findElement(By.xpath("//li[@class='k-item'][.='Revenue per click']")).click(); 

Und dies ist der HTML-Code aus dem Browser für die Drop-Down-:

<div class="controls"> 
    <span class="k-widget k-dropdown k-header kendo-input span8 ddFix" unselectable="on"> 
     <span unselectable="on" class="k-dropdown-wrap k-state-default"> 
     <span unselectable="on" class="k-input">Select revenue type... 
     </span> 
     <span unselectable="on" class="k-select"> 
      <span unselectable="on" class="k-icon k-i-arrow-s">select</span> 
     </span> 
     </span> 
     <input name="revenueType" id="revenueType" class="kendo-input span8 ddFix" data-role="dropdownlist" style="display: none;"> 
    </span> 
</div> 

<div class="k-animation-container km-popup"> 
     <div class="k-list-container k-popup k-group k-reset" id="revenueType-list" data-role="popup"> 
      <ul unselectable="on" class="k-list k-reset" tabindex="-1" role="listbox" aria-hidden="true" id="revenueType_listbox" aria-live="off" style="overflow: auto;"> 
       <li tabindex="-1" role="option" unselectable="on" class="k-item">Select revenue type...</li> 
       <li tabindex="-1" role="option" unselectable="on" class="k-item">Revenue per action</li> 
       <li tabindex="-1" role="option" unselectable="on" class="k-item">Revenue per click</li> 
       <li tabindex="-1" role="option" unselectable="on" class="k-item">Revenue per sale</li> 
       <li tabindex="-1" role="option" unselectable="on" class="k-item">Revenue per action + Revenue per sale</li> 
       <li tabindex="-1" role="option" unselectable="on" class="k-item">Revenue per mile</li> 
      </ul> 
     </div> 
    </div> 
+0

Wo ist der Drop-down- – iamsankalp89

Antwort

0

Es ist schwer, ohne den Kontext zu debuggen, aber:

  1. Ihr Locator ist ungültig, verwenden Sie stattdessen:

    Da nur ein Element diesen Text enthält, sollte es ausreichen. Wenn Sie wollen immer noch @class in Selektor enthalten, verwenden

    By.xpath("//li[@class='k-item' and text()='Revenue per click']") 
    
  2. Versuchen mit Javascript ändern die unselectable Javascript Executor off verwenden.

+0

es immer noch nicht funktioniert, wie ich das Hauptproblem sehen kann, ist, dass, nachdem sie durchführen Fahren Sie auf klicken dropdown es öffnet und schließt sofort und diese zweite Zeile hat keine Zeit, diesen Text zu finden, den ich auswählen möchte, ich habe versucht, Thread.sleep (3000) nach dem ersten Klick zu setzen, aber es hilft nicht – alonso05

0

der Drop-Down-Textwert nach Klick Aktion

subdropdown_child = navigationDriver.findElements(By.cssSelector("select#ctl00_SPWebPartManager1_g_c873566a_540c_4681 option");         
for (Element subchild : subdropdown_child) 
    {  
    dropdown_value = subchild.text(); 
    new Select(navigationDriver.findElementByCssSelector("select#ctl00_SPWebPartManager1_g_c873566a_540c_4681_")).selectByVisibleText(dropdown_value); 
    } 
Verwandte Themen