Selenium onChange not working

Posted by tohop on Stack Overflow See other posts from Stack Overflow or by tohop
Published on 2010-03-30T10:09:59Z Indexed on 2010/03/30 10:13 UTC
Read the original article Hit count: 441

Filed under:
|
|

Hi, I have tried a number of things to try and get Selenium to pick up an 'onchange' event from a drop down menu, none of which has worked.

The offending HTML is:

<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>

I have read that Selenium IDE doesn't record some on* events, and so it would be wise to use 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");

However, this does not work (with or without the fireEvent). I have also tried using

$this->fireEvent("locator", "click");

instead of

$this->click("locator");

but this did nothing.

Selenium does not complain about these locators not existing so I am assuming it can see the select/option elements fine. The problem seems to be the onChange event.

Does anyone know how to resolve this?

Thanks.

© Stack Overflow or respective owner

Related posts about selenium

Related posts about onchange