选择特定选项

时间:2016-03-19 20:17:30

标签: javascript java selenium selenium-webdriver bookmarklet

我想写一个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代码来完成它。

1 个答案:

答案 0 :(得分:0)

选择选项框后,字段的class属性发生了变化。我直接使用了代码

document.getElementById('field_label_cf_agents').className="field_value";

此代码直接更改了类名属性,因此显示了该字段。