从Selenium的下拉列表中选择选项作为文本/字符串?

时间:2014-04-15 11:00:53

标签: java xpath selenium-webdriver

我有一种情况,我需要从下拉列表中获取当前选择作为文本或字符串并比较它以进一步断言,但是当我尝试getText()时,我得到了drop中的完整项目列表如何从下拉列表中获取当前选定的项目。

<form id="MODIFY_ATTRIBUTES" class="formList" method="post" action="jfn?ctxcontractId=L4%3A2274&mfunc=30&ctxnavCtx=C&cfunc=228&ctxaccountId=L4%3A1877&oid=L4%3A2042&ctx=L&octx=110&jfnRC=1">
<hr/>
<div class="formListTab">
<fieldset>
<div>
<label class="mandatory" for="p-param-L4:80000">Language</label>
<select id="p-param-L4:80000" name="p-param-L4:80000">
<option value="p-param-L4:80000-L4:12610">English</option>
<option selected="selected" value="p-param-L4:80000-L4:12600">French (Standard)</option>
<option value="p-param-L4:80000-L4:12830">Dutch</option>
</select>
</div>

我使用了以下XPATH,但它从下拉列表中返回完整的项目列表。

driver.findElement(By.xpath("//form[@id='MODIFY_ATTRIBUTES']/fieldset[1]/div/select")).getText();

1 个答案:

答案 0 :(得分:0)

您正在获取整个Select元素的文本,而不仅仅是所选选项。您可以使用内置函数来获取所选选项,然后从中获取文本。使用以下:

String selectedOption = new Select(driver.findElement(By.id("p-param-L4:80000"))).getFirstSelectedOption().getText();

但是如果你想使用xpath。您可以尝试以下:

String selectedOption = driver.findElement(By.xpath("//select[@id='p-param-L4:80000']/option[@selected='selected']")).getText();

我建议我提取您需要的文字。