How to click an

2019-04-07 05:31发布

This is a piece of UI code

<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>

where the <option> tags are nested inside the <select> tag. I need to click() on the second <option> element which is an item in the dropdown list. The dropdown is clickable when i try to click() on the <select> tag using id / uniqueattr.

How do I traverse the <option> tags nested under <select> and click on the right item?

2条回答
做自己的国王
2楼-- · 2019-04-07 06:26

Besides the correct Qwerky's answer, you can also do simple

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

This finds the option element with value='1' and clicks it, practically selecting it in the drop-down.

Both mine and Qwerky's solution are described and explained here, in the documentation.

查看更多
3楼-- · 2019-04-07 06:32

This will select the option with value "1" in the select with id "order_unit_line_rate_806782_is_addenda_enabled".

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

You can also select by index or text; see the docs.

查看更多
登录 后发表回答