我想从下拉列表中获取值。我有一个上传视频的课程,然后我想发布这个视频。我需要改变状态才能做到这一点。我看到另一个人问了一个类似的问题,但没有一个建议似乎有效。我提供了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 “元素。
答案 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);
}
}