我尝试了很多尝试,让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>
Run Code Online (Sandbox Code Playgroud)
我已经读过Selenium 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");
Run Code Online (Sandbox Code Playgroud)
但是,这不起作用(有或没有fireEvent).我也试过用
$this->fireEvent("locator", "click");
Run Code Online (Sandbox Code Playgroud)
代替
$this->click("locator");
Run Code Online (Sandbox Code Playgroud)
但这没有做任何事.
Selenium不会抱怨这些定位器不存在所以我假设它可以看到select/option元素没问题.问题似乎是onChange事件.
有谁知道如何解决这个问题?
谢谢.
在Ruby on Rails中,我试图innerHTML使用form_remote_tag帮助器更新div标签.只要关联的选择标记收到onchange事件,就会发生此更新.问题是,<select onchange="this.form.submit();">; 不起作用.也没有document.forms[0].submit().获取form_remote_tag中生成的onsubmit代码执行的唯一方法是创建一个隐藏的提交按钮,并从select标签调用按钮上的click方法.这是一个有效的ERb部分示例.
<% form_remote_tag :url => product_path, :update => 'content', :method => 'get' do -%>
<% content_tag :div, :id => 'content' do -%>
<%= select_tag :update, options_for_select([["foo", 1], ["bar", 2]]), :onchange => "this.form.commit.click" %>
<%= submit_tag 'submit_button', :style => "display: none" %>
<% end %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
我想做的就是这样,但它不起作用.
<% form_remote_tag :url => product_path, :update => 'content', :method => 'get' do -%>
<% content_tag :div, :id => 'content' do …Run Code Online (Sandbox Code Playgroud) 这似乎不起作用:
<select id="mySel" onchange="alert('foo')">
<option value="a">a</option>
<option value="b">b</option>
</select>
<script>
dojo.byId('mySel').value = 'b'; // select changes, but nothing is alerted
</script>
Run Code Online (Sandbox Code Playgroud)
(我正在使用道场,但这并不重要.)
我正在尝试在页面加载时自动单击带有 id btn 的按钮。这是我的片段。
<button id="btn">Click me</button>
<script>
document.getElementById('btn').click();
alert("h")
</script>
Run Code Online (Sandbox Code Playgroud)
如何在页面加载时发出警报?请帮忙。谢谢。