2014-09-19 20 views
6

Tôi gặp khó khăn lớn với một phần bài kiểm tra Geb của mình; cách chọn giá trị từ menu thả xuống. Tôi đã thử bốn cách khác nhau và không có cách nào trong số này hoạt động. Nó sẽ hoặc là sụp đổ kiểm tra hoặc bỏ qua ngay trên nó. Bất kỳ trợ giúp sẽ được đánh giáGeb: làm cách nào để chọn giá trị từ menu thả xuống?

yếu tố Form HTML (102.727 là id cho California trong bảng db ...)

<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> 

Kết quả HTML:

<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> 

kiểm tra Geb (không ai trong số những công việc ...):

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

tất cả các thử nghiệm trên trả lại lỗi này: java.lang.IllegalArgumentException: không thể chọn tùy chọn có văn bản hoặc giá trị: 102727 – ry1633

+0

Bạn có thể hiển thị html (chứ không phải mã gsp) mà bạn đang làm việc không? – erdi

Trả lời

8

Tôi đã tìm thấy mô phỏng người dùng chính xác là cách tốt nhất để thực hiện việc này. Trước tiên, nhấp vào số <select>, sau đó nhấp vào <option> mà bạn muốn.

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

Rõ ràng cách này trông thú vị hơn trong cuộc gọi phương thức, nhưng điều này sẽ giúp bạn thực hiện.

+1

Tôi đã cố gắng theo cách của bạn. Nhưng nó trả về lỗi này. java.lang.NullPointerException: Không thể gọi phương thức click() trên đối tượng null – ry1633

+1

Xin lỗi tôi đã không đọc HTML của bạn, hãy thử 'find {it.value() == 102727} .click()', nếu nó không hoạt động đăng thông báo lỗi đầy đủ. – jk47

+0

vẫn trả về cùng một lỗi "java.lang.NullPointerException: Không thể gọi phương thức click() trên đối tượng null". Tôi không thể đăng phần còn lại của lỗi b/c nó chứa một số thông tin nhạy cảm với org. – 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"); 

Hãy thử điều này.

Các vấn đề liên quan