2014-09-19 14 views
6

Gebelik testimin bir parçası ile büyük zorluk yaşıyorum; açılır menüden bir değer nasıl seçilir. Bunu dört farklı şekilde denedim ve bunların hiçbiri işe yaramadı. Ya teste çarpacak ya da üstünden atlayacaktır. BunlardanGeb: Bir açılır listeden bir değeri nasıl seçerim?

<div class="col-sm-2"> 
     <label id="submitterState-label" class="toplabel" for=submitterState>State</label> 
     <select name="submitterState" id="submitterState" class="form-control" aria-labelledby="submitterState-label" > 
<option value="null"></option> 
<option value="102722" >Alabama</option> 
<option value="102723" >Alaska</option> 
<option value="102724" >American Samoa</option> 
<option value="102721" >APO Address - AA</option> 
<option value="102725" >Arizona</option> 
<option value="102726" >Arkansas</option> 
<option value="102727" >California</option> 
<option value="102728" >Colorado</option> 
<option value="102729" >Connecticut</option> 
<option value="102730" >Delaware</option> 
<option value="102731" >District of Columbia</option> 
<option value="102732" >Florida</option> 
<option value="102733" >Georgia</option> 
<option value="102734" >Guam</option> 
<option value="102735" >Hawaii</option> 
<option value="102736" >Idaho</option> 
<option value="102737" >Illinois</option> 
<option value="102738" >Indiana</option> 
<option value="102739" >Iowa</option> 
<option value="102740" >Kansas</option> 
<option value="102741" >Kentucky</option> 
<option value="102742" >Louisiana</option> 
<option value="102743" >Maine</option> 
<option value="102744" >Maryland</option> 
<option value="102745" >Massachusetts</option> 
<option value="102746" >Michigan</option> 
<option value="102747" >Minnesota</option> 
<option value="102748" >Mississippi</option> 
<option value="102749" >Missouri</option> 
<option value="102750" >Montana</option> 
<option value="102751" >Nebraska</option> 
<option value="102752" >Nevada</option> 
<option value="102753" >New Hampshire</option> 
<option value="102754" >New Jersey</option> 
<option value="102755" >New Mexico</option> 
<option value="102756" >New York</option> 
<option value="102757" >North Carolina</option> 
<option value="102758" >North Dakota</option> 
<option value="102759" >Northern Mariana Islands</option> 
<option value="102760" >Ohio</option> 
<option value="102761" >Oklahoma</option> 
<option value="102762" >Oregon</option> 
<option value="102763" >Pennsylvania</option> 
<option value="102764" >Puerto Rico</option> 
<option value="102765" >Rhode Island</option> 
<option value="102766" >South Carolina</option> 
<option value="102767" >South Dakota</option> 
<option value="102768" >Tennessee</option> 
<option value="102769" >Texas</option> 
<option value="102770" >U.S. Virgin Islands</option> 
<option value="102771" >Utah</option> 
<option value="102772" >Vermont</option> 
<option value="102773" >Virginia</option> 
<option value="102774" >Washington</option> 
<option value="102775" >West Virginia</option> 
<option value="102776" >Wisconsin</option> 
<option value="102777" >Wyoming</option> 
</select> 

Geb testleri (none: Herhangi bir yardım HTML Sonuç (102727 db tablosunda California için id ...)

<div class="col-sm-2"> 
    <label id="submitterState-label" class="toplabel" for=submitterState>State</label> 
    <g:select name="submitterState" id="submitterState" from="stuff here..." class="form-control" optionKey="id" value="morestuff" noSelection="['null':'']" aria-labelledby="submitterState-label"/> 
</div> 

HTML Formu elemanı mutluluk duyacağız iş ...):

$('#submitterState').value(102727) 
    $("form").submitterState = 102727 
    $('select', name: "submitterState").value(102727) 
    $('div.col-sm-2').find('select', name: "submitterState").value(102727) 
+0

Yukarıdaki testlerin tümü bu hatayı döndürür: java.lang.IllegalArgumentException: metin veya değerle seçenek seçemedi: 102727 – ry1633

+0

Birlikte çalıştığınız html'yi (gsp kodunu değil) gösterir misiniz? – erdi

cevap

8

Kullanıcıya tam olarak benzetmenin en iyi yol olduğunu buldum. Önce <select>'a tıklayın, ardından istediğiniz <option>'a tıklayın.

$('#submitterState').click() 
$('#submitterState').find("option").find{ it.value() == "102727" }.click() 

Açıkçası bu bir yöntem çağrısında daha güzel görünüyor, ancak bu size gitmenizi sağlamalı.

+1

Yolunu denedim. Ancak bu hatayı döndürür. java.lang.NullPointerException: null nesnesinde method click() yöntemini çağıramıyor – ry1633

+1

Üzgünüm HTML'nizi okumadım, 'find {it.value() == 102727} .click()' i, eğer çalışmıyorsa Tam hata mesajını gönderin. – jk47

+0

yine de aynı hatayı döndürüyor "java.lang.NullPointerException:" null nesnesinde method click() yöntemi çağrılabilir ". Hataların geri kalanını yayınlayamıyorum, b/c bazı org duyarlı bilgiler içeriyor. – ry1633

0
import org.openqa.selenium.support.ui.Select; 
import org.openqa.selenium.By; 

Select dropdown = new Select(driver.findElement(By.id("var_302"))); 
      dropdown.selectByVisibleText("Hispanic or Latino"); 

Bunu deneyin.

İlgili konular