2017-06-27 9 views
0

ドロップダウンメニューの他の選択肢の後に、正しくドロップダウンメニューの1つの要素を選択しようとしました。HtmlUnit:他のオプションの後にオプションを選択する方法

オプションリスト:optionstemplate、このリストはoptionsProtocoleの1つの選択の後に作成されました。

error: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 was returned.

/// Select protocole 

HtmlSelect selectFieldProtocole = (HtmlSelect) page.getElementByName("protocolNameID"); 
List<HtmlOption> optionsProtocole = selectFieldProtocole.getOptions(); 
HtmlOption theOptionProtocole = null; 

for (HtmlOption option : optionsProtocole) { 
    if (option.getText().equals("dd")) { 
     theOptionProtocole = option; 
    } 
} 

selectFieldProtocole.setSelectedAttribute(theOptionProtocole, true); 

//// select version 

HtmlSelect selectFieldtemplate = (HtmlSelect) page.getElementByName("protocolVersion"); 

List<HtmlOption> optionstemplate = selectFieldtemplate.getOptions(); 
HtmlOption theOptiontemplate = null;    

for (HtmlOption option : optionstemplate) { 
    System.out.println("ma version " + option.getText()); 

    if (option.getText().equals("dd-V2.1.3")) { 
     theOptiontemplate = option; 
    } 
} 

System.out.println("ma version " + optionstemplate.get(0).getText()); 
// line before return error size zero so,line following don't work 
selectFieldtemplate.setSelectedAttribute(theOptiontemplate, true); 

HTML:

<div id="Upload file"> 
    <form action="http://qa2tsqat23101v-int.devqa.exch.int/minos/index.php/injector/MateloUpload" method="post" enctype="multipart/form-data"> 
     <div id="protocolNameID"> 
      <label for="protocolNameID"> Protocol Name </label> 
      <select name= "protocolNameID" class="protocol_choice" url="http://qa2tsqat23101v-int.devqa.exch.int/minos/index.php/injector/project/choose_protocolNameID/118"> 
       <option selected="selected" value= 'NULL'> </option> 
       <option value= "127"></option> 
       <option value= "19">ARCADIRECT</option> 
       <option value= "134">BIN 2</option> 
       <option value= "112">BIN MTF</option> 
       <option value= "131">Copy ARCADIRECT 2.6W</option> 
       <option value= "130">copy Fix4.2</option> 
       <option value= "125">copy_test</option> 
       <option value= "126">copy_test</option> 
       <option value= "116">dd</option> 
       <option value= "119">dd - v1.13.0</option> 
       <option value= "120">dd 1.13.0-6</option> 
       <option value= "117">dd-v1.8.21</option> 
       <option value= "8">FIX</option> 
       <option value= "114">FOUNDATION</option> 
       <option value= "115">Foundation</option> 
       <option value= "110">FULL BINARY</option> 
       <option value= "118">FullTestCases_5.4.1.s19_ME_CANO1_Limit8_full</option> 
       <option value= "999">INTERNAL</option> 
       <option value= "122">MIFID2 BIN</option> 
       <option value= "123">MIFID2 FIX</option> 
       <option value= "999">TBD</option> 
       <option value= "121">tccmi</option> 
       <option value= "109">TCS BIN</option> 
       <option value= "108">TCS FIX</option> 
       <option value= "128">TESTTT</option> 
       <option value= "129">TESTTTTT</option> 
       <option value= "111">UTP DIRECT</option> 
       <option value= "132">WSE BIN</option> 
       <option value= "133">WSE BIN 2</option> 
       <option value= "135">WSE FIX Test</option> 
       <option value= "113">XDP D</option>  
      </select> 
      <input type="hidden" id="currentNameID" name="currentNameID" value= "" > 
     </div> 
     <div id="protocolVersion"> 
      <label for="protocolVersion"> Version </label> 
      <select name= "protocolVersion" class="protocol_choice2"></select> 
      <input type="hidden" id="currentVersion" name="currentVersion" value=""> 
     </div> 
+0

select protocoleID後: user8221653

答えて

0

あなたが出発点として選択するようにあなたが好きなHtmlOptionを使用使用する必要がリストから何かを選択するユーザーをシミュレートしたい場合。一般的には :

  1. 選択解除を含め(これがあなたのために必要なすべてのバックグラウンド作業を行います

あなたは

  • を選択したいとHtmlOptionは(真)myOption.setSelectedを使用して、このオプションを選択して検索しますか、必要に応じて他のオプションとイベントトリガ)。 選択を変更することはdom属性によって反映されないことに注意してください。その結果、例えばpage.asXML以前と同じコードが表示されます(選択した属性は元の場所に残ります)。選択を確認したい場合は、javascriptまたはisSelectedメソッドをオプションで使用する必要があります。または、HttpClientワイヤロギングを有効にして、ワイヤ上の提出された値をチェックすることもできます。

  • 関連する問題