2012-04-24 72 views
1

這個問題是關於watir中的select_list。watir腳本中select_list的奇怪行爲

我們有一個行爲奇怪的web應用程序。

有一個四頁的表格,允許用戶在網站上註冊,並且在表單的一個頁面中有一個select_list,用戶必須從中選擇一個值列表。

值的列表是城市列表。

選擇列表中的HTML代碼是這樣的

<select id="roleDetailsForm:city" name="roleDetailsForm:city"> 
<option value="">---Select---</option> 
<option value="ABG">ABINGDON, QL</option> 
</select> 

的的Watir代碼,我已經寫了選擇值列表中的一個

@browser.select_list(:name => "roleDetailsForm:city").set "ADELAIDE, SA" 

的問題是

開發者日誌說,select_list正在發送文本而不是值到服務器,這是失敗的請求。

因此,ADL不會作爲服務器選擇的值,而是選擇「ADELAIDE,SA」。

但是,只有在運行腳本時纔會發生這種情況。

當用戶手動選擇在select_list中相同的文字,然後點擊提交,則發送「ADL」的值,它是正確的

眼下,開發商一直堅持,這是由於腳本該應用程序行爲奇怪。

但是,我無法確定爲什麼會發生這種情況?

渴望知道是否有其他人遇到過這樣的問題,如果這真的是由於腳本。

除的Watir上面的代碼我也試過

@browser.select_list(:name => "roleDetailsForm:city").set (@browser.select_list(:name => "roleDetailsForm:city").options[10]) 
+0

當將輸入字段設置爲某個任意值(如使用文本字段)以從選擇列表中選擇選項時,使用'.set' ,你需要'.select'方法。看到anonygoose的回答低於 – 2012-04-24 22:31:37

回答

3

使用

@browser.select_list(:name => "roleDetailsForm:city").select("ADELAIDE, SA") 

我覺得set僅僅是在原有的Watir select別名嘗試,但我不能肯定了。

這是值得一試。

+0

是的我認爲這是他的問題,我很確定。set直接設置選擇列表將返回的'值'..有點偷偷摸摸,因爲通常你必須修改頁面代碼或欺騙請求才能實現。 – 2012-04-24 22:30:15

0

你可以嘗試:?

@browser.select_list(:name => "roleDetailsForm:city").select_value('ADL') 

也許有一個隱藏字段,當你從選擇列表中的東西(和隱藏字段是什麼,是在服務器上檢查發現被填充也許使用Firebug或類似於當您手動從列表中選擇時是否有任何事件正在運行