如何在不使用SELECT语句的情况下从Dropdown中选择值

时间:2017-06-07 06:29:47

标签: java selenium select

在我的自动化套件中,我想从下拉列表中选择一个值而不使用SELECT语句。有人可以帮我解决这个问题。

实施例: 我想从下拉列表中选择一个国家/地区名称(印度),我不应该在这里使用SELECT。

自动化套件(Selenium with java)

代码:

<div id="pie_register_reg_form"> 
    <form id="pie_regiser_form" enctype="multipart/form-data" method="post" action="/registration/">
    <ul id="pie_register">
    <div class="fieldset">
    <label for="dropdown_7">Country</label>
        <select id="dropdown_7" class="piereg_validate[required]" name="dropdown_7">
        <option value="Afghanistan">Afghanistan</option>
        <option value="Albania">Albania</option>
        <option value="Algeria">Algeria</option>
        …
        <option value="India">India</option>
        …
        <option value="Zambia">Zambia</option>
        <option value="Zimbabwe">Zimbabwe</option>
        </select>
    </div>
</li>

我可以使用以下代码从下拉菜单中选择印度。

Select select = new Select(driver.findElement(By.xpath("path of the dropdown")));
select.selectByVisibleText("India");

但我不想在这里使用Select。还有其他方法可以从下拉列表中选择印度。

先谢谢

2 个答案:

答案 0 :(得分:0)

您可以使用以下备选方案从下拉列表中选择值:

driver.findElement(By.xpath("path of the dropdown")).sendKeys("India");

试试这个。它会起作用。

答案 1 :(得分:0)

driver.findElement(By.xpath("//path of dropdown"));

List<WebElement> allOptions = driver.findElements(By.xpath("//select[@id='xxxxx']//option")); //get all the options from the dropdown

for(WebElement option : allOptions) {   
if (option.getText().equals("India")) 
{

option.click();

}

}

可以使用此代码