如何使用WebDriver单击<option>元素?</option>

时间:2012-07-05 11:04:00

标签: java selenium webdriver ui-automation

这是一段UI代码

<select id="order_unit_line_rate_806782_is_addenda_enabled" class="selects_for_487886" onchange="select_addendum(806782, this);dateShowMemory(this.options[this.selectedIndex].value, '806782');" uniqueattr="Dynamic Site Accelerator / Dynamic Site Accelerator / Additional Usage Commitment / drop down" name="order_unit_line_rate[806782][is_addenda_enabled]">
     <option value="0" uniqueattr="Dynamic Site Accelerator / Dynamic Site Accelerator / Additional Usage Commitment / Fee">                     Fee                   </option>
     <option value="1" uniqueattr="Dynamic Site Accelerator / Dynamic Site Accelerator / Additional Usage Commitment / See Attached Addendum">                     See Attached Addendum                   </option>
</select>

<option>标记嵌套在<select>标记内。我需要在第二个click()元素上<option>,这是下拉列表中的一个项目。当我尝试使用id / uniqueattr在click()标记上<select>时,可以点击下拉列表。

如何遍历嵌套在<option>下的<select>代码,然后点击右边的项目?

2 个答案:

答案 0 :(得分:8)

除了正确的Qwerky的答案,你也可以做简单的

driver.findElement(By.xpath("//select/option[@value='1']")).click();

这会找到带有option的{​​{1}}元素并点击它,实际上会在下拉列表中选择它。

描述了我和Qwerky的解决方案explained here, in the documentation

答案 1 :(得分:5)

这将在id为“order_unit_line_rate_806782_is_addenda_enabled”的select中选择值为“1”的选项。

Select select = (Select)webdriver.findElement(By.id("your id here"));
select.selectByValue("1");

您也可以按索引或文字进行选择; see the docs