Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Events Selenium onChange不起作用_Events_Selenium_Onchange - Fatal编程技术网

Events Selenium onChange不起作用

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.

我尝试了很多方法,试图让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>
但是,这不起作用(有或没有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')");