我正在尝试使用Webdriver处理select元素

时间:2016-11-15 19:34:09

标签: java selenium webdriver

我想从下拉列表中获取值。我有一个上传视频的课程,然后我想发布这个视频。我需要改变状态才能做到这一点。我看到另一个人问了一个类似的问题,但没有一个建议似乎有效。我提供了html,调用了类和方法中的方法。非常感谢任何帮助。

以下是网页上的选择内容:

<select id="group_media_953_status" class="status" name="group_media_attributes[953][status]" style="display: none;">
    <option value="published" selected="selected">Published</option>
    <option value="scheduled">Scheduled</option>
    <option value="unpublished">Not Published</option>
</select>

以下是我对方法的调用:

dropdown("group_media_953_status", "Published");

以下是方法:

    public void dropdown(String name, String sel) {
        try {
            WebElement select = driver.findElement(By.id(name));
            List<WebElement> options =    select.findElements(By.tagName("option"));
            for (WebElement option : options) {
                System.out.println(option.getText());
        //     if(sel.equals(option.getText()))
        //         option.click(); 
            }
        } catch (NoSuchElementException ex) {
            System.err.println("Element in dropdown menu was not found");
            driver.quit();
            System.exit(0);
        }
    }

这是完整的HTML。我没有编写html代码所以我无法改变它:

        <td class="group-status">
        <div class="field status">
        <select id="group_media_9870_status" class="status"      name="group_media_attributes[9870][status]" style="display: none;">
    <option value="published" selected="selected">Published</option>
    <option value="scheduled">Scheduled</option>
    <option value="unpublished">Not Published</option>
    </select>

<div id="group_media_9870_status_chosen" class="chosen-container chosen-container-single chosen-container-single-nosearch" style="width: 0px;" title="">
<a class="chosen-single published">
<span>Published</span>
<div>
<b></b>
</div>
</a>
<div class="chosen-drop">
<div class="chosen-search">
<ul class="chosen-results">
</div>

我也尝试了xpath,但也找不到select元素。 / html / body / div [1] / section / div / div / form [2] / table / tbody / tr [1] / td [3] / div [1] / select和那仍然没有找到“select “元素。

1 个答案:

答案 0 :(得分:0)

您是否尝试过使用Select类?

import org.openqa.selenium.support.ui.Select;

public void dropdown(String name, String sel) {
        try {
              Select select = driver.findElement(By.id(name));
              select.selectByValue(sel);
        } catch (NoSuchElementException ex) {
            System.err.println("Element in dropdown menu was not found");
            driver.quit();
            System.exit(0);
        }
    }