読者です 読者をやめる 読者になる 読者になる

Selenium.check()ではonclickイベントは発生しない

少しはまったことですが、Selenium RC Java Client Driverから、ラジオボタンチェックボックスを選択/解除する場合には、Selenium.check()/uncheck()を使うかSelenium.click()を使っていたのですが、check()ではinpputでonclickイベントは発生しなません。click()だとチェックボックスの場合に状態(checked?)によって結果が変わるのでcheck()を使っていたのですが、チェックボックスのonclickイベントで別の処理を実行しているケースで意図した結果になりませんでした。
おそらくcheck()では、inputのcheckedの値を直接変更しているためだと思いますが、isCheck()でチェックされているかを確認してからclickするようにしました。

if(selenium.isChecked("name=hoge")){
    // click()でチェックする
    selenium.click("name=hoge");
}

Seleniumでテストする場合、ユーザの操作を再現することが目的だと思いますので、check()はテストの下準備のために使って、通常の操作に関してはclick()を使うべきかもしれません。