もはやどのレイヤーが原因かわからないけど全部 IE8 の所為にしよう
どういうこと?
<input type="radio">
で onclick()
内の関数で submit している場合
<!DOCTYPE html> <head> <script> function ggg() { document.serif.submit(); } </script> </head> <body> <form name="serif" method="POST" action="/"> <label><input type="radio" name="hello" value="hoge" onclick="ggg();"/>Hoge</label> <label><input type="radio" name="hello" value="fuga" onclick="ggg();"/>Fuga</label> <label><input type="radio" name="hello" value="hago" onclick="ggg();"/>Hago</label> </form> <div id="area"><%= params[:hello] %></div> </body> </html>
ブラウザ | div#area に値が表示されたかどうか |
---|---|
IE8(手動) | OK |
IE9(手動) | OK |
Firefox(手動) | OK |
Chrome(手動) | OK |
IE8(Selenium WebDriver) | NG |
IE9(Selenium WebDriver) | OK |
Firefox(Selenium WebDriver) | OK |
Chrome(Selenium WebDriver) | OK |
結論
IE8 は無かったことにしよう
補足
今回みたいに onclick()
の中で submit する形だと、POST に radio button のパラメータが入らないっぽい。
onclick()
ではなく<input type="submit">
だったらもちろんOKonclick()
の submit 前にdocument.serif.hello.checked = true
みたいなことやってればOK- フェイントで
onchange()
だとできるかなーと思ったらそれも駄目だった
補足2
検証した環境
- modern.IE の
IE8 - Win7
及びIE9 - Win7
- ソースコードはこちら https://gist.github.com/gongo/5452375
- selenium-server-standalone-2.32.0
- 各種 Driver