【问题标题】:How do i add items from a dropdown list then get the text of each item如何从下拉列表中添加项目然后获取每个项目的文本
【发布时间】:2013-06-11 11:34:45
【问题描述】:

我有一个包含 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>

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

【问题讨论】:

  • 为什么不将值放入数组中?
  • 我认为人们在这里缺少Selenium 标签。你现在有什么 Selenium 代码?

标签: java css selenium automation webdriver


【解决方案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 });

【讨论】:

  • 您缺少应用于问题的标签,尤其是Selenium。 jQuery 完全没有必要。
【解决方案2】:

使用 jQuery:

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

【讨论】:

  • 我实际上希望使用 Java 来实现。我应该先说我是编程新手 :(
  • 您缺少应用于问题的标签,尤其是Selenium。 jQuery 完全没有必要。
【解决方案3】:

你想使用 Webdrivers 的 findElements 函数

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

这通常是您想要做的。您的 HTML 看起来有点奇怪,所以我不确定 xpath 是否正确,但这应该可以帮助您入门。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-29
    • 2015-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    相关资源
    最近更新 更多