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

Kir*_*nya 7 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>
Run Code Online (Sandbox Code Playgroud)

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

如何遍历<option>嵌套在下面的标签<select>并单击右侧的项目?

Pet*_*ček 8

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

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

这会找到option元素value='1'并单击它,实际上在下拉列表中选择它.

的文档中描述和解释了我的和Qwerky的解决方案.


Qwe*_*rky 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");
Run Code Online (Sandbox Code Playgroud)

您也可以按索引或文字进行选择; 看文档.

  • @KiranKoundinya是的,这是Qwerky容易发现的错字,应该是`Select select = new Select(driver.findElement(By.anything("tudumtudum"))); (3认同)