我嘗試了很多事情來嘗試讓Selenium從下拉菜單中選取一個'onchange'事件,而這些事件都沒有奏效。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>
我已閱讀,硒IDE不記錄一些關於*事件,所以這將是明智的使用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不抱怨這些定位器不存在,所以我假設它可以看到選擇/選項元素罰款。這個問題似乎是onChange事件。
有誰知道如何解決這個問題?
謝謝。
您使用哪種瀏覽器? – John 2010-03-30 12:07:18
我正在測試Firefox 3.5.8。 – tohop 2010-03-30 12:29:18