我想写一个bookmarklet,它会在点击时执行并自动填充值。
我可以通过
选择值document.getElementById('component').value="IAE-Data Agent";
document.getElementById('component').onchange();
但它没有显示隐藏的字段。这是在选择框之后写入页面的javascript代码,我认为在手动选择框后会显示该字段。
showFieldWhen('cf_agents',
'component', ['IAE-Data Agent']);
我尝试执行该功能,还有许多其他方法仍然没有显示这些字段。
手动选择之前(隐藏字段时)
<th class="field_label bz_hidden_field" id="field_label_cf_agents">
<label for="cf_agents">
<a title="A custom Free Text field in this installation of Bugzilla." class="field_help_link" href="page.cgi?id=fields.html#cf_agents">Agent Class Name:</a>
</label>
</th>
显示字段后:
<th class="field_label" id="field_label_cf_agents">
<label for="cf_agents">
<a title="A custom Free Text field in this installation of Bugzilla." class="field_help_link" href="page.cgi?id=fields.html#cf_agents">Agent Class Name:</a>
</label>
</th>
只有班级改变。我尝试了很多方法,但仍然通过脚本我无法做到。
当我使用selenium脚本时
Select dropdown = new Select(driver.findElement(By.id("component")));
dropdown.selectByValue("IAE-Data Agent");
我能够看到显示的隐藏字段。但这是不可行的,因为我不想运行java应用程序来完成任务。
可以尝试使用其他方法来显示这些字段。如果javascript代码不起作用,可以通过bookmarklet或其他方式执行selenium代码来完成它。
答案 0 :(得分:0)
选择选项框后,字段的class属性发生了变化。我直接使用了代码
document.getElementById('field_label_cf_agents').className="field_value";
此代码直接更改了类名属性,因此显示了该字段。