我尝试了很多方法来尝试让 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 不会抱怨这些定位器不存在,所以我假设它可以很好地看到选择/选项元素。问题似乎是 onChange 事件。
有谁知道如何解决这个问题?
谢谢。