Events Selenium onChange不起作用
我尝试了很多方法,试图让Selenium从下拉菜单中选择一个“onchange”事件,但都没有成功 有问题的HTML是:Events Selenium onChange不起作用,events,selenium,onchange,Events,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.
<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>
但是,这不起作用(有或没有fireEvent)。我也尝试过使用
$this->fireEvent("locator", "click");
而不是
$this->click("locator");
但这并没有起到任何作用
Selenium并不抱怨这些定位器不存在,所以我假设它可以很好地看到select/option元素。问题似乎是onChange事件
有人知道如何解决这个问题吗
谢谢。试过这个吗
$this->fireEvent("opps_ondemand", "onchange");
fireEvent(元素id、事件到触发器) 我确实遇到了这个问题,但只在IE中遇到(Firefox和Google Chrome对我来说很好) 我发现解决方案是通过Selenium的
runScript
使用JavaScript手动强制更新。可以在此处找到一些方法:
例如,如果我的网页中有jQuery,我会这样做:
$this->select('IDOfSelectElement', '*some label*');
$this->runScript("$('#IDOfSelectElement').trigger('change')");
我正在火狐3.5.8上测试。
$this->select('IDOfSelectElement', '*some label*');
$this->runScript("$('#IDOfSelectElement').trigger('change')");