2016-03-12 53 views
1

我正在嘗試提交一個表單,該表單只與下拉菜單一致,才能進入另一個頁面。但我無法弄清楚如何選擇下拉列表。下面的示例代表我正在處理的內容。PhantomJS中的下拉操作

<select name="p_term" size="1" id="term_input_id"> 
<option value="">None 
</option><option value="201605">Summer Session: May - Aug 2016 
</option><option value="201601">Second Term: Jan - Apr 2016 
</select> 

我已經試過

document.getElementById('term_input_id').value='201601'; 

,但在那裏PhantomJS不會與這條線運行我的代碼的其餘部分。

+0

[我的答案在這裏](http://stackoverflow.com/a/32771797/1816580)或[這裏](http://stackoverflow.com/a/30988637/1816580)工作嗎? –

回答

2

select元素不像輸入,你不能直接賦值。

var val = 201601; 
var sel = document.getElementById('term_input_id'); 
var opts = sel.options; 
for(var opt, j = 0; opt = opts[j]; j++) { 
    if(opt.value == val) { 
     sel.selectedIndex = j; 
     // or: 
     // opt.selected = true 
     break; 
    } 
} 

(從this出色答卷)

然後,你必須觸發onchange事件被重定向頁面到另一個位置:

var evt = document.createEvent("HTMLEvents"); 
evt.initEvent("change", false, true); 
sel.dispatchEvent(evt); 

(從this答案)

但PhantomJS將不會在此處運行我的代碼的其餘部分。

要找出哪個錯誤導致腳本中斷,請訂閱page.onError回調。

+0

@ArtjomB。如果它是通過'