如何从下拉列表中添加项目,然后获取每个项目的文本

时间:2013-06-14 18:20:56

标签: java css selenium automation webdriver

我有10个项目的下拉列表。如何编写将所有这些项目存储在某种列表中的代码,以便我可以将每个项目相互比较?页面的布局是:

<select id="blahBlah">

 <option value = "0" selected="selected">fghgjjyg1</option>
 <option value = "1">dghdfgffg2</option>
 <option value = "2">fsd gdf3</option>
 <option value = "3">f fdgfdg4</option>
 <option value = "4">dfsgf5</option>
 <option value = "5">fdgfdsgsd6</option>
 <option value = "6">sgfgsfgdf7</option>
 <option value = "7">fdsgsdgg8</option>
 <option value = "8">fdsgfds9</option>
 <option value = "9">dfsdfs10</option>
</select>

所以有数字和每个项目的结尾 - 我希望能够验证顶部的数字是否小于它下面的数字。

3 个答案:

答案 0 :(得分:1)

您想使用Webdrivers findElements函数

List<WebElement> options = driver.findElements(By.xpath(//select[@id=blahBlah]/option));
for(WebElement e : options){
    System.out.println(e.getText())
}

这通常是你想要做的。你的HTML看起来有点奇怪,所以我不确定xpath是否正确,但这应该让你开始。

答案 1 :(得分:-1)

不使用jQuery:

var selectDom  = document.getElementById("blahBlah");
var optionsDom = selectDom.getElementsByTagName("option");
var optionsArray = Array.prototype.slice.call(optionsDom);
var theArrayThatYouWant = optionsArray.map(function(option) { return option.text });

答案 2 :(得分:-1)

使用jQuery:

var yourArray = []
$('#blahBlah option').each(function(){yourArray.push($(this).text())});