Seleniumにドロップダウンメニューから「onchange」イベントを取得させるために多くのことを試みましたが、どれも機能しませんでした。
問題のある HTML は次のとおりです。
<select onchange="doOpperation(this.options[this.selectedIndex]); this.selectedIndex = 0;" name="opps_ondemand" id="opps_ondemand">
<option value="none" id="ondemand">Mark as...</option>
<option cmd="blah1" value="add">Something</option>
<option cmd="blah2" value="remove">None</option>
</select>
Selenium IDE はいくつかの on* イベントを記録しないことを読んだので、fireEvent() を使用するのが賢明でしょう:
$this->click("opps_ondemand");
$this->select("opps_ondemand", "label=Mark as...");
$this->click("//option[@value='add']");
sleep(3);
$this->fireEvent("//select[@id='opps_ondemand']", "change");
ただし、これは機能しません (fireEvent の有無にかかわらず)。私も使ってみました
$this->fireEvent("locator", "click");
それ以外の
$this->click("locator");
しかし、これは何もしませんでした。
Selenium は、これらのロケーターが存在しないことについて不平を言うことはないので、select/option 要素が正常に表示されると想定しています。問題は onChange イベントのようです。
これを解決する方法を知っている人はいますか?
ありがとう。