List<WebElement> statusvalues = driver.findElements(By.id("ddlStatus"));
for (WebElement option : statusvalues)
{
System.out.println(option.getText());
}
这是我以前编写的脚本。
系统没有提供错误,但我没有得到结果。我需要在输出中写入五个下拉值。 HTML
代码如下所示。
<select id="ddlStatus" name="Status" class="full-width" data-role="dropdownlist" style="display: none;">
<option value="" selected="selected"> -- Select -- </option>
<option value="11">Arts</option>
<option value="13">Science</option>
<option value="14">Engineering</option>
<option value="64">Law</option>
<option value="85">Teaching</option>
<option value="87">Journalist</option>
</select>
只是探索selenium webdriver以及如何在输出中写下下拉值。
答案 0 :(得分:1)
List<WebElement> statusvalues = driver.findElements(By.id("ddlStatus"));
它是一个元素,而不是元素的集合,所以你需要这样做:
WebElement selectElement = driver.findElement(By.id("ddlStatus"));
在该元素中,您可以选择以进行收集:
List<WebElement> options = selectElement.findElements(By.tagName("option"));
现在你可以循环......
尝试:
List<WebElement> statusvalues = driver.findElement(By.id("ddlStatus")).findElements(By.tagName("option"));
for (WebElement option : statusvalues)
{
System.out.println(option.getText());
}
答案 1 :(得分:0)
最好的方法是尝试使用Select
进行下拉菜单,如下所示: -
Select sel = new Select(driver.findElement(By.id("ddlStatus")));
List<WebElement> options = sel.getOptions();
for (WebElement option : options)
{
System.out.println(option.getText());
}
注意: - driver.findElements(By.id("ddlStatus"));
仅提供标识为Elements
的所有ddlStatus
的列表,因此在这种情况下您只能获得在这里下拉元素而不是它的选项。
希望它会对你有所帮助.. :)
答案 2 :(得分:0)
你也可以试试这个
List <WebElement> options = driver.findElements(By.xpath("//*[@id='ddlStatus']/option"));
for(WebElement option : options)
{
System.out.println(option.getText());
}
您还可以通过以下3种方式处理下拉列表,
new Select(driver.findElement(By.id(&#34; ddlStatus&#34;))。selectByVisibleText(&#34;特定文字&#34;);
new Select(driver.findElement(By.id(&#34; ddlStatus&#34;))。。selectByIndex(特定索引);
new Select(driver.findElement(By.id(&#34; ddlStatus&#34;))。。selectByValue(&#34;特殊值&#34;);