【问题标题】:Using Selenium for selecting an option on a select with optgroup使用 Selenium 在带有 optgroup 的选择上选择一个选项
【发布时间】:2010-12-01 09:46:47
【问题描述】:

我正在尝试在选择元素中选择一个值。我正在使用 Selenium RC (Java) 来运行测试用例。我了解选择值的代码由以下人员给出:

selenium.select("locator", "value=REQUIRED VALUE")

我无法使用上述代码选择所需的值。我认为这可能与选择源代码中的 optgroup 有关。我没有遇到任何异常,该命令执行良好,但查看页面时未选择所需的值。 另外,我不能使用 id(而不是值),因为没有任何。下面是选择器的源码:

<select>
   <optgroup label="Group1">
      <option value="13">some value1</option>
      <option value="25">some value2</option>
   </optgroup>
   <optgroup label="Group2">
      <option value="18">REQUIRED VALUE</option>
      <option value="34">some value3</option>
      ...
      ...
   </optgroup>
</select>

有没有办法使用 Selenium 选择所需的值?

如果我们可以避免选项值(例如“18”、“34”等),那就太好了,因为这些数字稍后会随着值的变化而变化。例如,“REQUIRED VALUE”的值为 -18,但如果我要删除此项目并再次添加它,它的值会有所不同。基本上这个下拉框是动态的。

【问题讨论】:

    标签: selenium selenium-rc html-select


    【解决方案1】:

    您的示例中所需选项的值实际上是“18”。请尝试以下操作:

    selenium.select("locator", "label=REQUIRED VALUE")
    

    【讨论】:

    • 嗨,戴夫,感谢您的回复。但是您认为除了使用 18 之外还有其他方法吗?我的应用程序中下拉列表的内容发生了变化,数字也发生了变化。换句话说,现在它显示为但它可以是任何数字。即使我多次运行测试,这些数字也会发生变化。对于可以做什么,您还有其他想法吗?同时,我也会针对我的问题更新此评论。谢谢,穆根
    • 再次检查我的答案。我建议将 'value=' 更改为 'label='。这使您可以根据标签而不是值来选择选项。
    猜你喜欢
    • 1970-01-01
    • 2019-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多