如何使用带有Java的Selenium WebDriver从下拉列表中选择一个选项? [英] How to select an option from a drop-down using Selenium WebDriver with Java?

查看:116
本文介绍了如何使用带有Java的Selenium WebDriver从下拉列表中选择一个选项?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要从下面的html中选择一个类别. 我尝试了不同的选项,并且博客中显示了不同的方式,但是无法选择这些选项. 任何帮助将不胜感激.

I need to select a category from the below html. I tried different options, and different ways showed in the blogs, but not able to select the options. Any help will be appreciated.

我使用的一种方法(不是更好的方法)

One way I am using as (Not a better one)

private boolean select_dropdown_xpath(String value, String seleniumObjectValue) {
    try {
        boolean isListItemFound = false;
        int i = 0;

        do {
            i++;
            String category = driver.findElement(By.xpath(seleniumObjectValue+"/div["+ i +"]")).getText();
            if(category.equals(value)) {
                driver.findElement(By.xpath(seleniumObjectValue+"/div["+ i +"]")).click();
                isListItemFound = true;
            }
        } while (isListItemFound == false);

        if(!(isListItemFound)) {
            return false;
        }               

    } catch(Exception e) {
        return false;
    }

    return true;
}

工具:Selenium WebDriver 2.28 使用Java

Tool: Selenium WebDriver 2.28 with Java

谢谢 普纳(Purna)

Thanks Purna

HTML:

<div class="drop-down">
    <div class="label_field">
        <label>Category:</label>
        <fieldset>
            <div id="Ccategory" class="jSym_select_element jSym_pie jSym_noSelectText false hover" tabindex="0" textval="Default" style="width: 350px;">
                <div class="jSym_drop_arrow false"/>
                <div class="jSym_select_inner false">Default</div>
            </div>
        <div id="selectDrop" class="jSym_select_drop jSym_noSelectText " style="height: 50px; width: 350px; margin-top: 10px;">
            <div class="jSym_select_item jSym_noSelectText" optionval="Default">Default</div>
            <div class="jSym_select_item jSym_noSelectText" optionval="Reset">Reset</div>
        </div>
            <select id="select_category" class="jSym_dropdown" name="category" style="visibility: hidden;">
                <option value="Default">Default</option>
                <option value="Reset">Reset</option>
            </select>
        </fieldset>
    </div>
</div>

推荐答案

尝试以下代码:

Select sele = new Select(driver.findElement(By.id("select_category")));

//Select the dropdown by using the displayed value.
sele.selectByVisibleText(`displayed value`);

//or you can Select the dropdown by using the index value.
sele.selectByIndex(`index value`);

 //or you can Select the dropdown by using the value attribute.
sele.selectByIndex(`value in the value attribute`);

在您的情况下,下拉可见性是隐藏的.因此,首先使用JavaScript Executor类使其可见.然后使用上面的代码.

In your case the dropdown visibility is hidden. So, first make it as visible by using JavaScript Executor class. Then use the above code.

这篇关于如何使用带有Java的Selenium WebDriver从下拉列表中选择一个选项?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆