2013-02-01 126 views
0

我需要從下面的html中選擇一個類別。 我嘗試了不同的選項,並在博客中顯示不同的方式,但無法選擇選項。 任何幫助將不勝感激。硒的webdriver 2.28 與Java如何使用Selenium WebDriver與Java從下拉列表中選擇一個選項?

感謝 普爾納

HTML:

<div class="drop-down"> 
    <div class="label_field"> 
     <label>Category:</label> 
     <fieldset> 
      <div id="Ccategory" class="jSym_select_element jSym_pie jSym_noSelectText false hover" tabindex="0" textval="Default" style="width: 350px;"> 
       <div class="jSym_drop_arrow false"/> 
       <div class="jSym_select_inner false">Default</div> 
      </div> 
     <div id="selectDrop" class="jSym_select_drop jSym_noSelectText " style="height: 50px; width: 350px; margin-top: 10px;"> 
      <div class="jSym_select_item jSym_noSelectText" optionval="Default">Default</div> 
      <div class="jSym_select_item jSym_noSelectText" optionval="Reset">Reset</div> 
     </div> 
      <select id="select_category" class="jSym_dropdown" name="category" style="visibility: hidden;"> 
       <option value="Default">Default</option> 
       <option value="Reset">Reset</option> 
      </select> 
     </fieldset> 
    </div> 
</div> 

回答

5
我使用的(不是一個更好的)

private boolean select_dropdown_xpath(String value, String seleniumObjectValue) { 
    try { 
     boolean isListItemFound = false; 
     int i = 0; 

     do { 
      i++; 
      String category = driver.findElement(By.xpath(seleniumObjectValue+"/div["+ i +"]")).getText(); 
      if(category.equals(value)) { 
       driver.findElement(By.xpath(seleniumObjectValue+"/div["+ i +"]")).click(); 
       isListItemFound = true; 
      } 
     } while (isListItemFound == false); 

     if(!(isListItemFound)) { 
      return false; 
     }    

    } catch(Exception e) { 
     return false; 
    } 

    return true; 
} 

工具

的一種方式

試試這個代碼:

Select sele = new Select(driver.findElement(By.id("select_category"))); 

//Select the dropdown by using the displayed value. 
sele.selectByVisibleText(`displayed value`); 

//or you can Select the dropdown by using the index value. 
sele.selectByIndex(`index value`); 

//or you can Select the dropdown by using the value attribute. 
sele.selectByIndex(`value in the value attribute`); 

在你的情況下,下拉可視性是隱藏的。因此,首先使用JavaScript Executor類來使其可見。然後使用上面的代碼。

+0

如何通過在Selenium中使用JavascriptExecutor使下拉菜單可見? –

相關問題